问题描述
我无法从某些.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 (将#修改为@)