Spero che questo mi possa aiutare, almeno, a rispondere a una delle 2 domande che ho posto a here, ma sto cercando come creare un PivotCache in EPPlus/OpenXML e puo ' trovare qualcosa online/nella loro documentazione che mostra come farlo.OpenXML/EPPlus - Crea PivotCache in .Net
Così, suposing ho un foglio Excel, wksRawData
creato nel EPPlus e voglio creare un secondo foglio con una tabella pivot basata sulla cache perno della wksRawData.Cells(wksRawData.Dimension.Address)
- nella speranza che poi ho potuto cancellare wksRawData ma ancora mantenere il tabella pivot. Come potrei farlo?
Finora, il mio codice per creare la tabella pivot nel mio secondo foglio di lavoro è:
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)
PER FAVORE, qualsiasi aiuto su questo o l'altra domanda realmente sarebbe apprezzato - Che sia in C# o VB, EPPlus o OpenXML - Ho solo bisogno di farlo funzionare !!!
GRAZIE!
Sono un po 'confuso su cosa si intende fare qui ... La mia sfida è che voglio creare la tabella pivot basata sui dati in un secondo foglio e quindi eliminare il secondo foglio. La sfida è che se si elimina il secondo foglio tramite EPPlus, la tabella pivot viene visualizzata vuota quando si apre la cartella di lavoro. La mia logica era quella di salvare i dati in una PivotCache (che poi mi avrebbe permesso di cancellare il secondo foglio), ma non riesco a trovare un modo per farlo. –
Seguendo la logica dell'altro Q, potrei scrivere il codice per workbook_open che eliminerebbe il secondo foglio una volta che la pivotcache viene automaticamente creata da excel quando si apre la cartella di lavoro, ma qui mi piacerebbe imparare come creare la cache effettiva .. . Qualche idea??/Cosa stai suggerendo ?? –