Ich hoffe, dass dies mir zumindest helfen könnte, eine der 2 Fragen zu beantworten, die ich gestellt habe here, aber ich schaue, wie man einen PivotCache in EPPlus/OpenXML erstellt und ' Ich finde etwas online/in ihrer Dokumentation, das zeigt, wie es geht.OpenXML/EPPlus - Erstelle PivotCache in .Net
So suposing Ich habe ein Excel-Sheet, wksRawData
in EPPlus erstellt, und ich möchte ein zweites Blatt mit einer Pivot-Tabelle auf dem Schwenk Cache von wksRawData.Cells(wksRawData.Dimension.Address)
Basis schaffen - in der Hoffnung, dass dann ich wksRawData löschen konnte, aber nach wie vor die halten Pivot-Tabelle. Wie würde ich das tun?
Bisher mein Code die Pivot-Tabelle in meinem zweiten Arbeitsblatt zum Erstellen ist:
Dim wksRawData As ExcelWorksheet = wbk.Worksheets("Raw Data")
Dim wksPvtTbl As ExcelWorksheet = wbk.Worksheets("PivotTbl")
' Insert the Pivot Table to the sheet
Dim DataRange As ExcelRange = wksRawData.Cells(wksRawData.Dimension.Address)
Dim pvtTable As OfficeOpenXml.Table.PivotTable.ExcelPivotTable = wksPvtTbl.PivotTables.Add(wksPvtTbl.Cells("B4"), DataRange, "MyPivotTable")
pvtTable.Compact = True
pvtTable.CompactData = True
pvtTable.Outline = True
pvtTable.OutlineData = True
pvtTable.ShowHeaders = True
pvtTable.UseAutoFormatting = True
pvtTable.ApplyWidthHeightFormats = True
pvtTable.ShowDrill = True
pvtTable.RowHeaderCaption = "Caption"
' Set the top field
Dim r1 As OfficeOpenXml.Table.PivotTable.ExcelPivotTableField = pvtTable.Fields("FirstField")
r1.Sort = OfficeOpenXml.Table.PivotTable.eSortType.Ascending
pvtTable.RowFields.Add(r1)
' Set the second field
Dim r2 As OfficeOpenXml.Table.PivotTable.ExcelPivotTableField = pvtTable.Fields("SecondField")
r2.Sort = OfficeOpenXml.Table.PivotTable.eSortType.Ascending
pvtTable.RowFields.Add(r2)
r2.ShowAll = False
' Set the DataField
Dim df1 As OfficeOpenXml.Table.PivotTable.ExcelPivotTableField = pvtTable.Fields("DataField")
df1.SubTotalFunctions = OfficeOpenXml.Table.PivotTable.eSubTotalFunctions.Sum
pvtTable.DataFields.Add(df1)
BITTE, irgendwelche und alle Hilfe zu diesem Thema oder die andere Frage wäre wirklich zu schätzen - sei es in C# oder VB, EPPlus oder OpenXML - ich muss nur funktionieren !!!
DANKE!
Ich bin ein wenig verwirrt über das, was Sie hier tun wollen ... Meine Herausforderung ist, dass ich die Pivot-Tabelle basierend auf Daten in einem zweiten Blatt erstellen und dann das zweite Blatt löschen möchte. Die Herausforderung besteht darin, dass beim Löschen des zweiten Blattes über EPPlus die Pivot-Tabelle leer ist, wenn Sie die Arbeitsmappe öffnen. Meine Logik war dann, die Daten in einem PivotCache zu speichern (was mir dann erlauben würde, das zweite Blatt zu löschen), aber ich kann mir nicht vorstellen, wie ich das machen könnte. –
Nach Ihrer Logik von der anderen Q, könnte ich Code für workbook_open schreiben, die das zweite Blatt löschen würde, sobald der Pivotcache automatisch von Excel erstellt wird, wenn die Arbeitsmappe öffnet, aber hier möchte ich lernen, wie Sie den tatsächlichen Cache erstellen. Irgendwelche Gedanken ??/Was schlägst du vor?? –