使用OpenXML读取Excel文件的性能

截至目前即时通讯使用oledbreader阅读所有版本的Excel文件。 我提到一个DLL读取Excel 2010文件。 但我不能使用oledbreader阅读一些excel 2010文件。 所以我想用openxml来读取所有的excel文件。 是在这个任何性能问题? 哪个更好?

使用以下代码从Excel电子表格中检索表名称(工作表名称)和列名称,我的运气非常好。

Private Sub GetWorksheetData Dim xlBaseConnStr1 As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=XLS;Extended Properties=""Excel 8.0;HDR=Yes""" Dim xlBaseConnStr2 As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=XLS;Extended Properties=""Excel 12.0 Xml;HDR=YES""" Dim xlName As String Dim conStr As String Dim oDia As New OpenFileDialog oDia.ShowDialog() xlName = oDia.FileName If xlName = "" Then Exit Sub End If Dim extType As String = Path.GetExtension(xlName) Select Case extType Case ".xls" conStr = xlBaseConnStr1.Replace("XLS", xlName) Case ".xlsx" conStr = xlBaseConnStr2.Replace("XLS", xlName) Case Else MessageBox.Show("Unrecognized file type") Exit Sub End Select Dim dtSheets As New DataTable Using cn As New OleDbConnection(conStr) cn.Open() dtSheets = cn.GetSchema("Columns") End Using DataGrid1.ItemsSource = dtSheets.DefaultView End Sub 

上面的代码块从我放置的随机Excel电子表格中返回以下数据。

在这里输入图像说明

您需要导入以下命名空间才能正常工作:

 Imports System.Data.OleDb Imports System.Data Imports Microsoft.Win32 Imports System.IO 

如果您尝试访问的电子表格具有macros,则上述代码可能会失败。