当前位置:编程学习 > VB >>

请问用ado读取excel出现字符串是科学计数法的

请问用ado读取excel出现字符串是科学计数法的,怎么解决,比如300100读出的是"3.001e+005",字段类型是字符串型的. --------------------编程问答-------------------- 既然是字符型,在 Excel 中就输入成 '300100。 --------------------编程问答-------------------- format(3.001e+005,"0") --------------------编程问答-------------------- 我就是用这样的方法读取的,打开excel表格它显示不是科学法,为什么读取的时候就变了呢
If rec.Fields("tt") & "" <> "" Then
rec_all_str = rec_all_str & rec.Fields("tt") 
End If --------------------编程问答-------------------- 显示格式有关,设置一下format属性 --------------------编程问答-------------------- 在EXCEL中加单引号' --------------------编程问答-------------------- 以一代码,在不同的地方,得到不同的值
Sub tt()
Dim con As New ADODB.Connection
Dim rec As New ADODB.Recordset
With con
    .Provider = "Microsoft.Jet.OLEDB.4.0"
    .ConnectionString = "Data Source=" & "d:\测试.xls" & _
";Extended Properties='Excel 8.0;imex=1'"
    .Open
End With
rec.Open "select * from [a$]" _
, con, adOpenDynamic, adLockOptimistic, adCmdText

While Not rec.EOF
MsgBox rec.Fields("a2")
rec.MoveNext
Wend
End Sub
如果放在本文件xls中不会出现科数计数法的字段串,但是放在其它的xls中调用测试的xls就会出现.
xls数据如下,由于不能上传附
a1 a2 a6 a7
1 3842000 a1 b1
2 3842001 a2 b2
3 3842001 a3 b3
然后我把a2列设为文本,然后双击一下a2列的第一行数据.就行出现以前效果,当目前有其它不出现科学计数法的方法就是用excel菜单上面的“菜单”-“数据”-“分列”-“文本”完成格式设置后,每个数据左上解都会有一个小绿角.但很想知道前者. --------------------编程问答-------------------- 1 当你没有将 Excel 表单中的某一列设置为文本而其内容为数字字符时,这一列就默认为数值。

2 当你在 VB 中没有设置一个数字的显示格式时,大于 Integer 最大值的数字就自动显示科学计数法。

3 如果你是用 DataGrid 显示数据集,可以在设计界面下鼠标右键单击控件,选右键菜单“属性”,在弹出的对话框中选“格式”页,选择字段、属性和显示格式。

4 如果用 TextBox 或 Label 等显示,可以采用 Format 函数处理。

  总之,大数字用科学计数法显示,是英美习惯中的缺省做法。如果你想要“特殊”格式,就需要专门设置。
--------------------编程问答-------------------- 这个好办,自己解析一下。或者用Format自动转换。
补充:VB ,  基础类
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,