关于读取execl中出现的问题,求救一下(100)

  • 主题发起人 主题发起人 maccy
  • 开始时间 开始时间
M

maccy

Unregistered / Unconfirmed
GUEST, unregistred user!
我用ADOConnection连接一个execl数据库,读取时出现下面的问题,当execl的某一个sheet的某一个列中同时有数字和汉字的时候,其中的汉字就读不出来,表现为该记录是空的,我把execl的那一列改为文本的时候,又会有数字的读不出来,很是郁闷,不知道哪位高手指点一下,我该怎么弄呀,谢谢!
 
应该是连接有问题吧.
 
不是连接问题,连接正常,而且大部分列的数据都能显示,就是某些数据有问题。
 
你是如何读取的?
 
1.adoconn连接串(EConn) EConn.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+E_File.Text+';Extended Properties=Excel 8.0;Persist Security Info=False'; 其中E_File.Text是execl文件名2.将表单名读取到一个ComboBox中(CB_Sheets)EConn.GetTableNames(CB_Sheets.Items);3.用ADOQuery提取数据(EQuery1)EQuery1.SQL.Text := 'Select * From [' + CB_Sheets.Text + ']';EQuery1.Open;用这种方法提取出来的数据不全,主要是因为execl中某一列字段中如果有的行是数字有的行是文字的就出现这问题,含有文字的行就显示不出内容来。我要是把execl中的那一列的格式改为文本格式,再读取的话,纯数字的行又不显示了,真不知道怎么弄了,求高手指点一下怎么解决这问题,谢谢。
 
  我自己也正在做类似的东西,同样是excel,一列里面又有纯数字,又有纯文字,甚至还有以数字开头的文字,但sql查询本身完全是没有问题的。列本身的格式是文本格式。  你查询出来之后又是怎么处理的?直接显示到grid,还是导入到某个库里面?我觉得恐怕是查询之后的这个操作有问题,这个操作的数据类型不对。
 
这样看没有什么问题~~你查询的记录显示出来的代码?贴出来~~
 
建议你使用 SMI控件,在例子中有读写EXCEL的方法,速度非常快,你可以试一下的
 
后退
顶部