Mam nadzieję, że to może mi pomóc, przynajmniej odpowiedzieć na jedno z dwóch pytań, które zadałem here, ale szukam, jak utworzyć PivotCache w EPPlus/OpenXML i mogę " • znaleźć cokolwiek online/w swojej dokumentacji, która pokazuje, jak to zrobić.OpenXML/EPPlus - Utwórz PivotCache w .Net
Więc suposing Mam jeden arkusz Excel, wksRawData
stworzony w EPPlus i chcę utworzyć drugi arkusz ze stołem obrotowym w oparciu o pamięci podręcznej przegubu wksRawData.Cells(wksRawData.Dimension.Address)
- w nadziei, że to może usunąć wksRawData ale nadal zachować Stół obrotowy. Jak to zrobić?
tej pory mój kod do tworzenia tabeli przestawnej w moim drugim arkuszu jest:
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)
PROSZĘ, wszelkie pomoc w tej lub innej sprawie rzeczywiście byłoby mile widziane - czy to w C# lub VB, EPPlus lub OpenXML - Po prostu muszę działać!
DZIĘKI!
Jestem nieco zdezorientowany tym, co chcesz tutaj zrobić ... Moim wyzwaniem jest to, że chcę utworzyć tabelę przestawną na podstawie danych z drugiego arkusza, a następnie usunąć drugi arkusz. Wyzwanie polega na tym, że po usunięciu drugiego arkusza za pomocą EPPlus tabela przestawna pojawia się pusta po otwarciu skoroszytu. Moją logiką było następnie zapisanie danych w PivotCache (co pozwoliłoby mi skasować drugi arkusz), ale nie mogę wymyślić, jak to zrobić. –
Podążając za twoją logiką z drugiej Q, mógłbym napisać kod dla workbook_open, który usunąłby drugi arkusz po automatycznym utworzeniu pliku przestawnego przez program Excel, gdy otworzy się skoroszyt, ale tutaj chciałbym się nauczyć, jak utworzyć rzeczywistą pamięć podręczną. . Jakieś pomysły??/Co sugerujesz? –