以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]从Excel读入数据小数点后几位怎么丢失丢了呢?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=100682)

--  作者:新福星
--  发布时间:2017/5/16 14:25:00
--  [求助]从Excel读入数据小数点后几位怎么丢失丢了呢?


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170516141410.png
图片点击可在新窗口打开查看

 

编程从Excel文件中读取数据。见图AB两行。B是Excel原始数据,A是读到表中的数据。看一下数量这一列,为什么小数点后几位丢了呢?

初始在设置这表时已经将该表数量这一列设置为6位小数了。读进来就丢了。

 

Dim zd As New Dictionary(Of String,Integer)

dim s as row

Dim zz() As String={"级码","物料编码","数量"}

 

DataTables(bm5).DataCols("数量").SetFormat("0.000000")
DataTables(bm5).DataCols("数量小计").SetFormat("0.000000")

 

 

      s=Tables(bm5).AddNew
        For Each x As String In zz
            s(x)= Sheet(行数, zd(x)).Value
        Next
        s("项目编号")=xmbh
        s("产品编码")=cpbm
        s("版本")=bben

 

行数+=1
......

 

上面是程序主要语句。 帮助看看什么原因?

[此贴子已经被作者于2017/5/16 14:25:22编辑过]

--  作者:有点色
--  发布时间:2017/5/16 14:35:00
--  

弹出获取的值是否正确

 

output.show(Sheet(行数, zd(x)).Text)

output.show(Sheet(行数, zd(x)).Value)

 

如果获取都不正确了,那你需要用vba获取数据。


--  作者:新福星
--  发布时间:2017/5/16 17:50:00
--  


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170516174625.png
图片点击可在新窗口打开查看

可以从Excel读出小数点后几位,但写入表中就丢失了。


--  作者:有点色
--  发布时间:2017/5/16 18:15:00
--  

1、你数量列试一下用 双精度或高精度 小数;

 

2、列属性那里,小数位数,设置成尽量多位 http://www.foxtable.com/webhelp/scr/0050.htm

 


--  作者:新福星
--  发布时间:2017/5/16 18:35:00
--  

该表是用fill得到的各字段。其中数量原表就是6位小数点,本应继承下来。

Tables(bm5).fill(zc,数据源名,True)

用这种方法得到的表如何改动  数量 的小数点位长?
 DataTables(bm5).DataCols("数量").SetFormat("0.0000000000")

这种方法不好用!

 

 

 

[此贴子已经被作者于2017/5/16 19:19:50编辑过]

--  作者:新福星
--  发布时间:2017/5/16 19:34:00
--  

DataTables(bm5).DataCols("数量").Decimals=6
DataTables(bm5).DataCols("数量小计").Decimals=6

找到办法了!谢谢