请教:用ADO直接打开EXCEL的问题。

zfmich 2002-09-04 10:44:59
在读取某一数值类型的列时,如果第一行的该列值为空(实际应为0,但文件中以空白表示),则后面的所有该列值读出来都为空;如果把第一行的该列值补上数字,则读出的数据正确无误。请问,这是什么问题?谢谢!
...全文
67 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zfmich 2002-09-12
  • 打赏
  • 举报
回复
to kaidu(Roger) :
我也是这么做的,问题是碰到我上面所说的特殊情况,不知该怎么处理?(现在我只能在读取之前先把为空的数据补0)
kaidu 2002-09-05
  • 打赏
  • 举报
回复
1.设置ADOConnection的ConnectionString
构造ConnectionString时,OLE DB的提供者要选择Microsoft Jet 4.0 OLE DB Provider作为ADO的驱动程序。这本来是用于连接Access数据库的驱动程序,但也可打开Excel文件。
连接的数据库名称当然就是你要打开的Excel文件,注意扩展名是*.xls,而不是*.mdb。
最关键的一点是,还要设置扩展属性Extended Properties为“Excel 8.0”,否则,测试连接时会报告无法识别数据格式的错误。Extended Properties的属性值在“所有”参数页中输入。
最后,设置完成后的ConnectionString中的各项参数为:
Provider=Microsoft.Jet.OLEDB.4.0
Data Source=MyExcelFile.xls
Extended Properties=Excel 8.0
Persist Security Info=False

  2.设置ADODataSet或ADOTable
将ADODataSet或ADOTable连接到刚才的ADOConnection。如果不用ADOConnection,也可以参照上面的方法直接设置ADODataSet或ADOTable的ConnectionString属性。
对于ADODataSet,需要将CommandType属性设置为cmdTableDirect,而对于ADOTable,则将TableDirect属性设置为True。因为,访问Excel文件是直接的数据文件访问,不是通过SQL语句来操作游标访问的。如果不设置直接访问,则系统会报告SQL语句格式错误等信息。
然后,当你下拉ADODataSet中的CommandText属性或ADOTable的TableName属性时,就可以选择到要打开的工作表了。注意,表名后面多了加一个$符号。
3.打开ADODataSet或ADOTable
zfmich 2002-09-04
  • 打赏
  • 举报
回复
哪位有兴趣或肯帮忙的,我把程序发过去帮忙试试。
guguda 2002-09-04
  • 打赏
  • 举报
回复
gz
zfmich 2002-09-04
  • 打赏
  • 举报
回复
to xiachedan(瞎扯蛋):
这跟录入没有关系,现在是读取数据时有问题。

to kaidu(Roger):
现在我只是用数据网格关联都不行。

还望大家帮个忙 ,最好能帮忙试试是什么问题/
kaidu 2002-09-04
  • 打赏
  • 举报
回复
把你代码贴出来看看就知道了
xiachedan 2002-09-04
  • 打赏
  • 举报
回复
数据录入时有错吧!!!
zfmich 2002-09-04
  • 打赏
  • 举报
回复
to ddvboy(ddv) :
用默认值代替空值?现在的问题是后面本来有数值的项读出来都为空了。
ddvboy 2002-09-04
  • 打赏
  • 举报
回复
你可以建立个主建
或用默认制来代替空知
zfmich 2002-09-04
  • 打赏
  • 举报
回复
帮个忙!!!!!!

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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