好的,首先,打开与 Excel 电子表格的 OleDB 连接。
然后,使用类似下面的东西(在 VB.NET 中显示):
Imports System.Data
Imports System.Data.Odbc
Imports System.Data.OleDb
Dim DSN As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MYEXCELFILE.XLS;Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;MAXSCANROWS=12"""
Dim OleDbConn As New OleDbConnection(DSN)
OleDbConn.Open()
Dim tables As System.Data.DataTable = OleDbConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing)
Dim tableName As String
Dim canBeImported As Boolean
For Each dr As System.Data.DataRow In tables.rows
tableName = dr.Item("TABLE_NAME").ToString
canBeImported = (tableName.IndexOfAny(New Char() {" ","[","]","'","""","`",";"}) < 0)
Next
OleDbConn.Close()
这将遍历 Excel 文件中的所有表(表 = 工作表或命名范围)并获取每个表的名称。此外,它会过滤掉任何包含无法通过 ODBC 访问的字符的表(空格是最常见的问题)。