我希望这可以帮助我回答我之前在这里提出的两个问题中的一个。但是我正在寻找如何在EPPlus / OpenXML中创建PivotCache,而且在网上或他们的文档中都找不到任何显示如何执行此操作的内容。
假设我有一个名为
到目前为止,我用于在我的第二个工作表中创建数据透视表的代码是:
假设我有一个名为
wksRawData
的Excel工作表,它是在EPPlus中创建的,我想创建第二个工作表,并基于wksRawData.Cells(wksRawData.Dimension.Address)
的数据透视缓存来创建数据透视表 - 希望然后我可以删除wksRawData但仍保留数据透视表。我该怎么做呢?到目前为止,我用于在我的第二个工作表中创建数据透视表的代码是:
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)
非常感谢任何在这个问题或其他问题上提供的帮助 - 无论是使用C#还是VB、使用EPPlus还是OpenXML - 我只需要让它工作起来!!!
谢谢!