我们用SQL或ADO操作Excel表时,需要指定sheet名称。一般情况下,我们对sheet的名称是已知的。但是,有时候标签名称不确定,或者标签名称是按照某种编码方式产生的。这种情况下,得到标签名称就十分必要了。我们当然可以通过打开Excel表对象,然后遍历sheets来得到标签名称,但这种处理效率较低,也很麻烦。那么是否可以在不打开Excel表的情况下,得到标签名称呢?答案是肯定的。
由于我们可以将Excel表作为数据源进行连接,因此我们就可以通过这个连接的某些属性得到Excel表所包含的标签(相当于table)。在这个处理中我们需要引用或创建ADOX.Catalog对象,这个对象包含了tables属性,由此得到table以及它的名称。
Function GetSheetName(filepath As String, n As Integer) As String
'功能:返回标签名称
'引用:Mocrosoft ADO Ext 2.8 for DDL and Securty
'参数:filepath--Excel文件名,n--标签序号(从1开始)
Dim conn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim sheetname As String
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filepath & ";Extended Properties=Excel 8.0;"
conn.Open
Set cat.ActiveConnection = conn
sheetname = cat.Tables(n - 1).Name
conn.Close
Set cat = Nothing
Set cnn = Nothing
GetSheetName = sheetname
End Function
Access软件网交流QQ群(群号:198465573) |