ACE.OLEDBE.12.0无法读取某些XLSX文件中的任何行

问题描述

我无法从某些.xlsx文件中读取任何行。下面是我正在使用的代码

Dim excelData As New DataTable
Using connection As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excelPath + ";Extended Properties=""Excel 12.0 Xml;HDR=Yes""")
    connection.open()
    Dim dtSchema As DataTable = connection.GetoleDbSchemaTable(OleDbSchemaGuid.Tables,New Object() {nothing,nothing,"TABLE"})
    Dim sheet1Name As String = dtSchema.Rows(0).Field(Of String)("TABLE_NAME")
    Using adapter As New OleDbDataAdapter(String.Format("SELECT * From [{0}]",sheet1Name),connection)
        adapter.Fill(excelData)
    End Using
End Using

该软件可以读取用户创建的.xlsx文件,没有任何问题,但是某些文件是由另一个程序创建的,而该程序创建的文件却无法读取。我创建了一个新的excel文件,并将其剪切并粘贴到该文件中,该文件已成功读取,但是原始文件无法正常工作。

代码不会引发异常,我最终得到的是DataTable,行数为零。

编辑1 我的一位同事指出,他们的.xlsx文件是在access中创建的。

编辑2 Access创建的.xlsx文件确实可以在Excel中正常打开。 文件开头没有空行。

编辑3 我将扩展属性更改为:Extended Properties=""Excel 12.0 Xml;IMEX=1;HDR=No""。这样,我正在读取列名,但仍不读取下一行中的任何数据。请注意,除了文件头之外,只有一行。

有人对我如何解决此问题有任何建议吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)