我希望这可以帮助我,至少回答我提出的两个问题之一here,但我正在寻找如何在EPPlus / OpenXML中创建PivotCache并且无法在线找到任何内容/在他们的文档中显示了如何做到这一点。
所以,假设我有一张Excel工作表,wksRawData
在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,我们都会非常感激这个或其他问题的所有帮助 - 我只需要让它工作!!!
谢谢!
答案 0 :(得分:0)
我相信您想要从其他工作表添加数据。我在其他主题中的帖子显示完整代码EPPlus Pivot Table - Collapse entire field
var pt = wsPivot1.PivotTables.Add(wsPivot1.Cells["A1"], ws.Cells["K1:N11"], "Pivottable1");
调用“PivoTtables.Add()”参见下面的工具提示。
// Summary:
// Create a pivottable on the supplied range
//
// Parameters:
// Range:
// The range address including header and total row
//
// Source:
// The Source data range address
//
// Name:
// The name of the table. Must be unique
//
// Returns:
// The pivottable object