Kurze Antwort:
Lange Antwort:
Referenzen / Credits:
Details:
Wie @gobansaor fanden wir, dass es hilfreich war, mit einer Arbeitsmappe zu beginnen, die bereits eine Verbindung zum PP-Cache hatte (notwendig?). Vor dem Verbinden mit dem PP-Cache über AMO stellen wir beispielsweise sicher, dass die Verbindung aktiv ist:
ThisWorkbook.Connections["PowerPivot Data"].Reconnect()
oder
ThisWorkbook.Connections["PowerPivot Data"].Refresh()
Die für AMO verwendete Verbindungszeichenfolgemarke war: Provider=MSOLAP;Data Source=$Embedded$;Locale Identifier=1033;Location={0};SQLQueryMode=DataKeys
und wir füllten diese mit ThisWorkbook.FullName
Nach @gobansaor haben wir uns über ADO mit dem Würfel verbunden:
ADODB.Recordset recordSet = new ADODB.Recordset();
recordSet.Open("SELECT [Measures].[Min of Field1] ON COLUMNS FROM [Model]",
ThisWorkbook.Connections["PowerPivot Data"].OLEDBConnection.ADOConnection);
Sie können ein VSTO-Add-In erstellen.
Hier ist eine Website, die die Arbeit mit PowerPivot und VSTO erklärt.
Besser noch, werfen Sie einen Blick auf den C # -Quellcode des Excel-Aktualisierungsdienstes auf Codeplex - der zeigt, wie man öffnet und manipuliert PowerPivot-Cubes, die in Excel-Arbeitsmappen eingebettet sind.
Seien Sie sich dessen bewusst, worauf Sie hinaus wollen ... Excel-Automatisierung hat viele Eigenheiten und neigt dazu, instabil zu sein, wenn sie als Verbindung zu einem PowerPivot-Würfel verwendet wird.
Tags und Links c# excel powerpivot