C# OpenXML/EPPlus-在.Net中创建数据透视缓存
我希望这至少能帮助我回答我提出的两个问题中的一个,但我正在寻找如何在EPPlus/OpenXML中创建数据透视缓存,但在他们的文档中找不到任何在线/显示如何创建数据透视缓存的内容 因此,假设我有一张Excel工作表,C# OpenXML/EPPlus-在.Net中创建数据透视缓存,c#,.net,vb.net,openxml,epplus,C#,.net,Vb.net,Openxml,Epplus,我希望这至少能帮助我回答我提出的两个问题中的一个,但我正在寻找如何在EPPlus/OpenXML中创建数据透视缓存,但在他们的文档中找不到任何在线/显示如何创建数据透视缓存的内容 因此,假设我有一张Excel工作表,wksRawData是在ePlus中创建的,我想创建第二张工作表,其中包含基于wksRawData.Cells(wksRawData.Dimension.Address)的透视缓存的透视表,希望这样我可以删除wksRawData,但仍然保留透视表。我该怎么做 到目前为止,我在第二个工
wksRawData
是在ePlus中创建的,我想创建第二张工作表,其中包含基于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中-我只需要让它工作
谢谢 我相信您想从其他工作表中添加数据。我在你另一个帖子中的帖子显示了完整的代码 调用“PivoTables.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
我有点不明白你想在这里做什么。。。我的挑战是,我想根据第二张工作表中的数据创建透视表,然后删除第二张工作表。挑战在于,如果通过EPPlus删除第二张工作表,则在打开工作簿时,数据透视表将显示为空。我的逻辑是将数据保存在数据透视缓存中(这样我就可以删除第二张工作表),但我想不出一个方法。按照另一个Q中的逻辑,我可以为工作簿_open编写代码,一旦工作簿打开时excel自动创建数据透视缓存,就会删除第二张工作表,但在这里我想学习如何创建实际的缓存。。。有什么想法吗你有什么建议??
// 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