4

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

 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 文件的替代方法以避免此问题?

4

2 回答 2

4

我遇到了类似的问题,但反过来,数字显示得很好,但 alpha 没有。添加后

;IMEX=1

到扩展属性,它工作得很好。

IMEX=1意味着始终将混合数据列作为文本读取。

于 2013-05-23T19:06:08.507 回答
1

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

于 2015-06-08T15:23:41.867 回答