* Herausgegeben unten mit neuem CodeExcel VSTO + C# .NET + Erstellen Sie Pivot-Tabelle
Ich versuche, eine Pivot-Tabelle in C# .Net für eine Excel VSTO zu schaffen, sondern keeping eine Ausnahme, dass die Staaten geworfen zu werden:
Exception from HRESULT: 0x800A03EC
das Blatt ich versuche, die Pivot-Tabelle zu erstellen ist oSheet genannt und ist das gleiche wie das Blatt, das die Quelldaten
ich einen Bereich für die Pivot-Tabelle Quelle schaffen hat:
Excel.Range pivotData = osheet.Range["A1", "B3"];
Ein Bereich für, wo die Pivot-Tabelle sein:
Excel.Range pivotDest = osheet.Range["A12", "B14"];
dann versuchen, die Tabelle mit diesem zu erstellen:
osheet.PivotTableWizard(
Excel.XlPivotTableSourceType.xlDatabase,
pivotData,
pivotDest,
"Table",
true,
true,
true,
true,
true,
true,
false,
false,
Excel.XlOrder.xlDownThenOver,
0,
false,
false
);
Der Fehler auftritt in der Tabelle Assistenten Linie.
Irgendwelche Ideen zu dem, was den Fehler verursacht oder eine bessere Möglichkeit, eine Pivot-Tabelle über C# .Net zu erstellen?
* Neuer Code
Excel.Application oApp;
Excel.Worksheet osheet;
Excel.Workbook oBook;
oApp = new Excel.Application();
oBook = oApp.Workbooks.Add();
osheet = (Excel.Worksheet)oBook.Worksheets.get_Item(1);
osheet.Cells[1, 1] = "Name";
osheet.Cells[1, 2] = "Salary";
osheet.Cells[2, 1] = "Frank";
osheet.Cells[2, 2] = 1500000;
osheet.Cells[3, 1] = "Millford";
osheet.Cells[3, 2] = 2200;
//Now capture range of first sheet = I will need this to create pivot table
Excel.Range oRange = osheet.Range["A1", "B3"];
var pch = oBook.PivotCaches();
Excel.Range pivotData = osheet.Range["A1", "B3"];
Excel.PivotCache pc = pch.Create(XlPivotTableSourceType.xlDatabase, pivotData);
Excel.PivotTable pvt = pc.CreatePivotTable(osheet.Range["A12"], "MyPivotTable");
pvt.PivotFields("Col1").Orientation = XlPivotFieldOrientation.xlRowField;
pvt.PivotFields("Col2").Orientation = XlPivotFieldOrientation.xlColumnField;
pvt.AddDataField(pvt.PivotFields("Col3"), "Sum of Col3", XlConsolidationFunction.xlSum);
Haben Sie [ 'PivotTables.Add' zu verwenden versucht, ] (https://msdn.microsoft.com/en-us/library/office/ff196910.aspx) anstatt den Assistenten zu verwenden? – PetLahev