【问题标题】:Access Excel Data Model (Power Query) tables from ODBC从 ODBC 访问 Excel 数据模型 (Power Query) 表
【发布时间】:2019-08-09 04:59:29
【问题描述】:

我们可以使用 ODBC(Excel ODBC 驱动程序)访问 Excel 数据。我们还可以访问数据模型(即 Power Query 表)中的数据吗?基本上我正在考虑(错误)使用 Excel/Power Query 作为数据库,并让外部应用程序从中检索数据(使用 SQL)。

要从 Sheet1 中读取,我可以这样做:

SELECT ... FROM [Sheet1$]

但是

SELECT ... FROM [table in data model] 

似乎对我不起作用。这是应该工作还是根本不支持?

有大量关于 Power Query 使用 ODBC 导入数据的信息。在这里,我正在反观。

【问题讨论】:

  • Power Query 不存储表。它连接到数据源并将它们转换为您加载到数据模型和/或工作表中的表,因此您的 SQL 代码将只是连接到电子表格。
  • 对不起,您的评论对我没有多大帮助。从工作表中读取是没有问题的(这是有据可查的)。从数据模型中的表读取是一个谜(可能不支持)。
  • 这并不能回答您的问题,但是,您为什么要尝试通过 Excel?您可能有这样做的理由,但我看不出有任何理由强制您使用 Excel。为什么不使用您的外部应用程序连接到与 Excel 相同的数据?而不是做 Data-->Excel-->Application 只需做 Data-->Application...
  • 使用您的外部应用程序,您是否尝试过查看 Excel 文件的 get the table names 架构?如果您在那里看不到任何表格,我不会对这种方法寄予太大希望。
  • @CharlesPL 嗯,我的想法是这样可以更轻松地共享数据集(只需通过电子邮件发送一个电子表格文件;数据模型中的表是高度压缩的)。

标签: excel powerquery


【解决方案1】:

您应该自己区分 Power Query 表和数据模型 (Power Pivot) 表。您可以将一些 PQ 表设置为可加载到 DM 的表,因此数据将仅针对该特定表从 PQ“传输”到 DM。

我很确定不可能从“仅限 PQ”表中获取数据。您可以通过 VBA 或解压 Excel 获得 m 个查询(而不是它们的结果)。

关于 PP (DM) 表。实际上,Excel 内部有分析服务 (VertiPac) 引擎(以防万一 - 以及 PowerBI Desktop 内部)。因此,一旦您启动 Excel 或 PBI,您实际上也启动了 AS 引擎实例。可以通过以下方式访问其中的数据:

  1. Excel VBA(Visual Basic for Applications)。您拥有 Thisworkbook.Model.DataModelConnection.* API,并且可以获取数据本身和模型。这是以编程方式获取数据的唯一“官方”方式。

  2. Power Query - 作为分析服务数据源。这是非官方的方式,但我读到,微软告诉他们将来不会关闭它(但你永远不知道:-))。例如。 Dax Studio 可以做到这一点 - https://www.sqlbi.com/tools/dax-studio/。 不幸的是,虽然获得 PBI AS 服务很容易,但我不知道如何在没有 Dax Studio 的情况下获得 Excel AS 服务。据我了解,这里的主要问题是如何获取由 Excel 启动的 AS 端口号。但我希望这些信息至少可以帮助您了解进一步搜索的方式,如果您想采用 Power Query 方式。或者将 Power BI Desktop 用于该任务可能是合理的。

  3. Excel 只是一个 zip 文件,所以里面肯定有 AS 文件。我从来没有走这条路,但你可以观察一下 exel zip 里面有什么——可能 AS 文件可能在那里以某种有用的形式存在。

【讨论】:

  • 谢谢。我想我的期望太高了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多