使用Excel中的电源查询连接到Postgresql数据库

问题描述:

我在上面苦苦挣扎 - 我已经安装了PowerQuery(64位Excel 2013安装程序)并且在数据库连接选项下,尽管按照这里的说明下载了Ngpsql数据提供程序PostgreSQL的:使用Excel中的电源查询连接到Postgresql数据库

https://support.office.com/en-ie/article/Connect-to-a-PostgreSQL-database-Power-Query-bf941e52-066f-4911-a41f-2493c39e69e4?ui=en-US&rs=en-IE&ad=IE

我仍然只能看到有限的选项数据库列表,其中不包括PostgreSQL数据库下下。现在已经猎杀围绕在网络上,我发现这个线程:

https://superuser.com/questions/950100/connect-to-postgresql-database-from-excel-2013-power-query-with-npgsql

这似乎表明,我不能看到PostgreSQL的选项的原因是,我没有使用OfficePro安装(认为这是家庭版) 。

有没有人有任何指针 - 对此的任何解决方法?或者我真的必须得到一个不同版本的办公室才能从Postgresql数据库获取数据,而不是将数据库转换为Access或其他?由于

[我有Office 2013专业版。]
had to do this除了安装 “PowerQuery_2.44.4675.281(64位)EN-US]的.msi”(我打勾在安装对话框GAC安装)和“Npgsql-3.2.3.msi”。另外,重新启动机器。

然后一切都开始连接工作。

但是,当使用Powerquery向Excel返回大量数据时,我会得到“类型转换”错误 - 我无法将其映射到NULL或任何易于确定的东西。 Powerquery似乎是一些用法的好工具,我相信这个错误可以通过数据转换步骤解决。

如果您只想获取postgres数据 - 您可以使用VBA + ADO。我刚刚完成设置,它的工作原理。

  1. 安装“psqlodbc_x64.msi”。
  2. Add references to your vba project
  3. 最后我创造了这个connecton字符串连接(无需窗户DSN设置 - 修改下面根据您的设置该字符串):

    cnn.Open“驱动程序= {PostgreSQL的统一(64)};服务器= 127.0.0.1; Port = xxxx; UID = postgres; PWD = postgres; Database = db_name;“

我也可以使用相同的连接字符串成功地将其添加为数据源。