是否可以创建 Excel 文件而无需在 spreedsheet 中放置基表?或者至少该基表位于数据透视表以外的其他工作表中。
目前我创建 DataColumn,在添加行之后...
ExcelWorksheet worksheet = pkg.Workbook.Worksheets.Add("Table");
worksheet.Cells["A1"].LoadFromDataTable(table, true);
var pivotTable = worksheet.PivotTables.Add(worksheet.Cells["H14"],
worksheet.Cells[rangePivotTable], "pivTable");
pivotTable.RowFields.Add(pivotTable.Fields["Grid"]);
.
.
.
最佳答案
似乎 EPPlus 数据透视表只能根据工作簿中已经存在的数据创建;所以您必须将源表放入电子表格中。
好消息是您可以轻松地在不同的工作表中拥有数据透视表和基表:
var wsPvt = pkg.Workbook.Worksheets.Add( "Pivot Table" );
var wsData = pkg.Workbook.Worksheets.Add( "Source Data" );
var rangePivotTable = wsData.Cells["A1"].LoadFromDataTable( tbl, true );
var pivotTable = wsPvt.PivotTables.Add(
ws.Cells[1,1],
rangePivotTable, "pvtTable");
我假设您不想将基表放入电子表格中,因为它要么相当大,要么只包含敏感细节。在这种情况下,您可以使用 C# 代码聚合基表(按用于数据透视表行和列的列对其进行分组)并将分组结果用作 Excel 数据透视表的基表。可以简单地使用 PivotData 执行聚合库 -- 如果您对这种方式感兴趣并需要更多解释,请告诉我(我是该库的作者)。
关于c# - 在 Epplus (C#) 中创建没有基表的数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35042191/