2016-12-24 144 views
1

我在上面苦苦掙扎 - 我已經安裝了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或其他?由於

回答

1

[我有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;「

我也可以使用相同的連接字符串成功地將其添加爲數據源。