Endlich hat das funktioniert. Es scheint, dass Sie aus irgendeinem Grund die Professional Plus Edition von Microsoft Office benötigen, um PostgreSQL-Verbindungen zu aktivieren. Da diese Version auf einem neuen Computer neu installiert wurde, Power Query -> From Database
stand standardmäßig die PostgreSQL-Option zur Verfügung. Nachdem ich diese Option ausgewählt und den Host- und Datenbanknamen sowie den Benutzernamen und das Kennwort angegeben hatte, wurde eine Fehlermeldung angezeigt, dass der Ngpsql-Datenprovider nicht gefunden wurde. Die im Menü erscheinende Option hängt also einfach von der MS Office-Version ab und nicht davon, ob der Ngpsql-Anbieter installiert ist. Ich ging zu dieser oben genannten Seite, lud das Setup_Npgsql-2.2.5.0-r3-net40.exe
Installationsprogramm herunter, rannte, startete Excel neu und alles funktionierte.
Stellen Sie über Excel 2013 Power Query mit Npgsql eine Verbindung zur PostgreSQL-Datenbank her
Ich möchte mit Power Query Daten aus einer PostgreSQL-Datenbank in meinem lokalen Netzwerk abrufen. Standardmäßig listet meine Excel-Version drei Optionen im Menü "Externe Daten abrufen / Aus Datenbank" auf der Multifunktionsleiste "Power Query" auf: "Aus SQL Server-Datenbank", "Aus Access-Datenbank" und "Aus SQL Server Analysis Services-Datenbank". PostgreSQL ist keine Standardoption.
Zum Glück (oder so dachte ich) gibt es diese Artikel auf der offiziellen Microsoft Office - Support - Seite, wie die Installation / Aktivierung Ngpsql Data Provider für PostgreSQL für diesen Zweck. Ich habe diese Anweisungen befolgt, sehe aber nur diese drei Optionen. Ich konnte keine anderen Anweisungen finden, wie dies bei Google möglich ist. Folgendes habe ich genau gemacht:
- Download
Npgsql-2.2.5-net35.zip
von hier, dies scheint die neueste Version von Npgsql für .Net 3.5 zu sein. In einen temporären Ordner entpackt. - Kopieren Sie
gacutil.exe
undgacutil.exe.config
von einem anderen Computer mit Visual Studio in einen anderen temporären Ordner auf diesem Computer (gefunden inc:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\x64\
). - Laufen
gacutil.exe /i "<tempfolder>\Npgsql.dll"
und gleich mitMono.Security.dll
. Bekam NachrichtAssembly successfully added to cache
auf beiden. - Bearbeiten Sie die
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\machine.config
XML-Datei (v2.0.50727 ist für .NET 3.5).- In Zeile
<add description=".Net Framework Data Provider for Postgresql Server" type="Npgsql.NpgsqlFactory, Npgsql, Version=2.2.5.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" name="Npgsql Data Provider" invariant="Npgsql" support="FF"/>
in Knoten<DbProviderFactories>
. Dies ist wörtlich von der Hilfeseite mit Ausnahme der Versionsnummer - Verifiziert durch Ausführen,
gacutil.exe -l | findstr Npgsql
dass die Versionsnummer und der öffentliche Schlüssel dem entsprechen, was ich installiert habe.
- In Zeile
- Dies ist das Ende der Anweisungen auf der Hilfeseite. Starten Sie Excel neu, keine Änderung der Datenbankoptionen im Menü. Starten Sie den Computer erneut.
- Versuchen Sie es erneut mit der .NET 4.0-Version. Laden Sie die neue Version von Npgsql von der Freigabeseite herunter, und entpacken Sie sie in den temporären Ordner.
- Die Version, die
gacutil.exe
ich kopiert habe, war für .NET 3.5. Fand die Alternative in einem anderen Verzeichnis (c:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\x64\
), verifiziert, dass es für 4.0 ist, indem sie mit dem-h
Switch läuft und bekamMicrosoft (R) .NET Global Assembly Cache Utility. Version 4.0.30319.18020
. Auf diese Maschine kopiert (musste das1033
Unterverzeichnis mit einigen anderen DLLs enthalten, damit es funktioniert). - Wiederholen Sie # 3 mit neuen DLLs und Version von
gacutil
. Gleiche Erfolgsmeldung. - Wiederholen Sie # 4 mit der
machine.config
Datei, diesmal imv4.0.30319
Verzeichnis.- Kommentierte auch den Knoten aus, den ich in der anderen Datei hinzugefügt hatte.
- Neustart, noch keine Option im Menü.
An diesem Punkt habe ich keine Ideen mehr. Ich habe dies auf einigen anderen Computern, da ich Labkey Server installiert hatte, der eine PostgreSQL-Datenbank verwendet und anscheinend die richtigen DLLs nebenan installiert. Es erscheint im Menü als "From PostgreSQL database". Natürlich könnte ich Labkey Server einfach auf diesem Computer installieren, aber das scheint eine hässliche Lösung zu sein, die ich vermeiden möchte.
2 Antworten auf die Frage
Ich habe keine speziellen Erfahrungen mit PostgreSQL, aber im Allgemeinen mit Datenbanktreibern ist es wichtig zu wissen, ob das Programm, von dem aus Sie starten, eine 32-Bit (aka x86) oder 64-Bit (aka x64) Architektur hat. Wie Sie bereits anhand der durcheinandergewürfelten Namen feststellen können, hat Microsoft einen Gesamthash dieser IMO erstellt.
Wechseln Sie für Excel 2013 zu Datei / Konto / Info zu Excel und schauen Sie sich das Ende der ersten Textzeile an. Excel (wie alle anderen Programme) funktioniert nur mit Treibern derselben Architektur.
Die Power Query-Dokumentationsseite, auf die Sie verweisen, weist darauf hin, aber es ist ein wenig irreführend, wenn sie sagen "Wählen Sie den Treiber aus, der zu Ihrer Power Query-Installation passt" - eigentlich bestimmt Ihre Excel-Installation die Architektur. Die Architektur für Power Query hängt auch vollständig von der Architektur für Excel ab.
Ich habe die Ngpsql 2.2.5 R3-Datei über den Link auf der Power Query-Seite heruntergeladen. Dies ist nicht wirklich klar, aber vom Installationsassistenten ausgehend, ist dies 32-Bit. Es wird die Installation in einem Ordner empfohlen C:\Program Files (x86)\The Npgsql Development Team\Npgsql
Wenn dies die einzige Quelle ist, schlage ich vor, dass Sie eine 32-Bit-Excel-Installation benötigen, damit das funktioniert.
Verwandte Probleme
-
3
Meine Datei ist in Excel 2007 gesperrt. Was ist los?
-
2
Gibt es eine Möglichkeit, Excel 2007 automatisch zu speichern, wie dies bei MS Word der Fall ist?
-
1
Excel Word Wrap + verschwindet Text
-
1
Einfaches Zusammenführen / Löschen mit Excel
-
7
Wie können Sie Microsoft Excel mit voller Geschwindigkeit laufen lassen, auch wenn der Fensterfokus...
-
2
Warum können Sie Bilder nicht in Excel kopieren / einfügen, aber Screenshots funktionieren?
-
3
So synchronisieren Sie Excel mit der Google Docs-Tabelle
-
9
Wie teilen Sie einen Namen auf, um Vorname und Nachname zu erhalten?
-
3
OpenX: mySql VS PostgreSQL
-
1
Links in Excel haben sich nach einem Absturz geändert