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

temp12_3 2012-11-29 07:30:22
请问用ado读取excel出现字符串是科学计数法的,怎么解决,比如300100读出的是"3.001e+005",字段类型是字符串型的.
...全文
202 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
东方之珠 2012-12-03
  • 打赏
  • 举报
回复
这个好办,自己解析一下。或者用Format自动转换。
of123 2012-12-03
  • 打赏
  • 举报
回复
1 当你没有将 Excel 表单中的某一列设置为文本而其内容为数字字符时,这一列就默认为数值。 2 当你在 VB 中没有设置一个数字的显示格式时,大于 Integer 最大值的数字就自动显示科学计数法。 3 如果你是用 DataGrid 显示数据集,可以在设计界面下鼠标右键单击控件,选右键菜单“属性”,在弹出的对话框中选“格式”页,选择字段、属性和显示格式。 4 如果用 TextBox 或 Label 等显示,可以采用 Format 函数处理。 总之,大数字用科学计数法显示,是英美习惯中的缺省做法。如果你想要“特殊”格式,就需要专门设置。
temp12_3 2012-12-02
  • 打赏
  • 举报
回复
以一代码,在不同的地方,得到不同的值
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菜单上面的“菜单”-“数据”-“分列”-“文本”完成格式设置后,每个数据左上解都会有一个小绿角.但很想知道前者.
worldy 2012-12-01
  • 打赏
  • 举报
回复
显示格式有关,设置一下format属性
temp12_3 2012-12-01
  • 打赏
  • 举报
回复
我就是用这样的方法读取的,打开excel表格它显示不是科学法,为什么读取的时候就变了呢 If rec.Fields("tt") & "" <> "" Then rec_all_str = rec_all_str & rec.Fields("tt") End If
饮水需思源 2012-12-01
  • 打赏
  • 举报
回复
在EXCEL中加单引号'
worldy 2012-11-30
  • 打赏
  • 举报
回复
format(3.001e+005,"0")
of123 2012-11-30
  • 打赏
  • 举报
回复
既然是字符型,在 Excel 中就输入成 '300100。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧