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)列中的可见单元格?

ListObject.Querytable 的 QueryTable_AfterRefresh 在 Excel 2016 中不起作用

如何在 ListObject 中显示 guid

.NET - Excel ListObject 在数据绑定上自动调整大小