Excel到ADO RecordSet具有数字单元格的空值

时间:2013-05-23 16:03:52

标签: excel vb6 ado

我正在尝试从Excel文件导入一些数据,但我遇到了数字单元格值的问题。我有一些列将具有值,其中一些都是数字,而其他值可能是数字和非数字值的混合(没有特殊字符,只有A-Z字母)。要将数据拉入记录集,我正在执行以下操作

 Set oconn = New ADODB.connection
 oconn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & excelFile & ";" & "Extended Properties=""Excel 8.0;HDR=YES;"""

  sTableName = "[sheet1$]"
  sTableName = "select * from " & sTableName

  Set oRs = New ADODB.Recordset
  oRs.Open sTableName, oconn, adOpenStatic, adLockOptimistic

当我正在读取记录集的值时,数值在数据为混合格式的列中显示为空白。有没有办法让记录集只读取所有值作为文本或读取Excel文件的另一种方法来避免这个问题?

2 个答案:

答案 0 :(得分:3)

我有一个类似的问题,但相反,数字显示罚款,但阿尔法没有。添加后

;IMEX=1

到扩展属性,它工作正常。

IMEX=1表示始终将混合数据列作为文本读取。

答案 1 :(得分:1)

如果以后可以排除它,最简单的方法就是将数据的前八行设置为所需的类型。尽管可以选择指定'行进行扫描'在ODBC中,事实证明它总是扫描前8行。如果你能够在顶部有一些虚拟数据(后来被枢轴等排除),这很有效! 您可以在此处查看Microsoft参考:https://support.microsoft.com/en-us/kb/141284