您不需要使用com interop從Excel文件讀取。您可以使用OLEDB(雖然你可能需要安裝office data connectivity components)
Imports System.Data.OleDb:
Public Shared Function ReadExcelWorkSheet(ByVal sheetName As String, ByVal connectionString As String) As DataTable
Dim sql As String = String.Format("SELECT * FROM [{0}$]", sheetName)
Dim dt = New DataTable()
Using conn As OleDbConnection = New OleDbConnection(connectionString)
Using cmd = New OleDbCommand(sql, conn)
conn.Open()
Using adapter = New OleDbDataAdapter(cmd)
adapter.Fill(dt)
End Using
End Using
conn.Close()
End Using
Return dt
End Function
如果連接字符串是XLSX文件:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES";
或XLS文件:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myOldExcelFile.xls;Extended Properties="Excel 8.0;HDR=YES";
更多信息在connection strings這裏
謝謝!我也很欣賞代碼片段。我只需要安裝Microsoft.Ace.OleDB.12.0提供程序,但我認爲這應該起作用。 – HKImpact