c# - 在 Epplus (C#) 中创建没有基表的数据透视表

标签 c# pivot-table epplus

是否可以创建 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/

相关文章:

c# - 如何为数百个并发连接优化/设计 WCF?

c# - 从 AppDomain.AssemblyLoad 事件中抛出异常

具有 3 级多索引的 Pandas 数据透视表

java - 当列和行标签使用相同索引时,Apache POI 数据透视表出现错误

c# - (C#) 我能否以编程方式将 XLSX 单元格设置为图片/图像?

c# - 尝试使用 linq 查询同一文件夹中的多个文本文件

c# - 获取控件的索引 : Controls. IndexOf 返回 -1

c# - EPPlus 和 Excel 的相机工具

python - 数据框到基于两列的数据框列表

c# - 如何取消合并单元格 EPPlus?