使用Excel数据读取器(.Net)读取XLSX时出现意外的空成员
我正在使用Excel数据读取器从中读取一个XLSX(Microsoft Excel XML文件),但遇到数据丢失的问题。库返回的数据集中缺少源Excel电子表格中的数据 以下是我所做工作的更多细节:使用Excel数据读取器(.Net)读取XLSX时出现意外的空成员,excel,openxml,Excel,Openxml,我正在使用Excel数据读取器从中读取一个XLSX(Microsoft Excel XML文件),但遇到数据丢失的问题。库返回的数据集中缺少源Excel电子表格中的数据 以下是我所做工作的更多细节: 在Excel中创建了一个简单的测试电子表格,其中包含一个工作表、一个标题行和两个数据行。保存并关闭Excel 打开文件并将流传递到CreateOpenXmlReader()方法中,然后获取一个IExcelDataReader 在IExcelDataReader上调用AsDataSet()方法并获取数
作为权宜之计,我正在将所有文件转换为二进制格式,但这似乎是个难题。有什么方法可以让我的OOXML格式的Excel文件通过Excel Data Reader正确读取吗?Excel Data Reader中似乎有一个bug(这是我第一次听说)。你一定要用它吗?如果没有,则是更好的选择。要检索Excel电子表格(.xlsx)并将其加载到数据集中,您不需要使用XML读取器或像Excel Data Reader这样的单独库。在.NET中使用普通OleDb函数时,将整个电子表格读入数据集的代码非常简单:
Sub readInMyExcelFile
Dim xlsFile as string = "myexcelfile"
Dim conStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & xlsFile & ";Extended Properties=""Excel 12.0 Xml;HDR=YES"""
Dim dtSheets As New DataTable
Dim tmp As String
Dim sqlText as Sting
Using cn As New OleDbConnection(conStr)
cn.Open()
dtSheets = cn.GetSchema("Tables")
End Using
//Dataset for the spreadsheet
Dim ds as New DataSet
/Loop through the names of all the worksheets in the file.
For Each rw as DataRow in dtSheets.Rows
tmp = rw("TABLE_NAME")
tmp = "[" & tmp & "]"
Dim dt as New DataTable
Using cn as New OleDbConnection(conStr)
cn.Open
/Retrieve all the records from the worksheet.
sqlText = "SELECT * FROM " & tblName
Dim adp As New OleDbDataAdapter(sqlText, cn)
/Fill the data table with the all the data.
adp.Fill(dt)
End Using
ds.Tables.Add(dt)
Next
End Sub
codeplex中的excel datareader用于直接在web应用程序上读取excel文件中的数据,而无需在服务器上进行任何缓存。只有当我们可以将excel文件存储到某个位置时,上述代码才有效。我在excel datareader中遇到过类似的问题,其中一些数据丢失。最重要的是,我无法找到任何特定的数据我想,如果所有的行都有值,那么就没有问题了。最好的机会是将xlsx转换为xls