使用Excel中的强大查询连接到Postgresql数据库

我正在努力与上述 – 我已经安装了PowerQuery(64位Excel 2013设置),并在数据库连接选项下,尽pipe按照这里的说明下载PostgreSQL的Ngpsql数据提供程序:

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专业版。]
除了安装“PowerQuery_2.44.4675.281(64位)[en-us] .msi”(我在安装对话框中勾选了GAC安装)和“Npgsql-3.2.3.msi”之外,我必须执行此操作 。 另外,重新启动机器。

一切都开始连接工作。

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

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

  1. 安装“psqlodbc_x64.msi”。
  2. 添加对你的vba项目的引用 。
  3. 最后我创build了连接这个连接string(没有窗口DSN设置要求 – 修改下面的string按照您的设置):

    cnn.Open“Driver = {PostgreSQL Unicode(x64)}; Server = 127.0.0.1; Port = xxxx; UID = postgres; PWD = postgres; Database = db_name;”

我也可以使用相同的连接string成功添加它作为数据源。