SQL中的Excel ListObject(格式为表格)
Posted
技术标签:
【中文标题】SQL中的Excel ListObject(格式为表格)【英文标题】:Excel ListObject (Format as Table) in SQL 【发布时间】:2021-11-28 22:01:13 【问题描述】:您可以在 Excel VBA 中使用 SQL 来查询工作表,如下所示:
Dim relConn As ADODB.Connection
Dim rs As ADODB.Recordset
Set relConn = CreateObject("ADODB.Connection")
relConn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& ThisWorkbook.FullName _
& ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1"";"
Set rs = CreateObject("ADODB.Recordset")
rs.Open "SELECT [MyWorksheet$].MyFirstLineHeader FROM [MyWorksheet$]", relConn
While (Not rs.EOF)
...
Wend
→ 工作表在 SQL 中称为[WorksheetName$]
。
在 SQL 中,如何引用通过选择范围并从主页功能区选择 Format as Table 创建的 ListObject?在 VBA 中,它们的访问方式如下:ThisWorkbook.Sheets("MyWorksheet").ListObjects("MyTableName")
。
【问题讨论】:
【参考方案1】:试试
Dim s as string
s = ThisWorkbook.Sheets("MyWorksheet").ListObjects("MyTableName").Range.Address(0, 0)
rs.Open "SELECT [MyFirstLineHeader] FROM [MyWorkSheet$" & s & "]", relConn
【讨论】:
这个有效!我接受它作为答案,但如果有人知道如何在 SQL 中引用表的名称,我会接受它。谢谢@CDP1802。以上是关于SQL中的Excel ListObject(格式为表格)的主要内容,如果未能解决你的问题,请参考以下文章
用熊猫将Excel工作表(Listobject)读入python
如何在没有任何数据行的 Excel 表/ListObject 中读取计算列的公式
ListObject.Querytable 的 QueryTable_AfterRefresh 在 Excel 2016 中不起作用