CSL*_*CSL 6 c# pivot-table epplus
我正在使用EPPlus在C#中编辑现有的电子表格.我正在改变第二个工作表上的原始数据,该工作表被用作第一个工作表上的数据透视表的数据源.我的编辑工作完全正常,我遇到的问题是,当我加载电子表格输出时,我必须通过单击Refresh DataExcel工具栏上的按钮手动更新数据透视表.
无论如何使用C#EPPlus来做到这一点?
我试过了:
package.Workbook.FullCalcOnLoad = true;
Run Code Online (Sandbox Code Playgroud)
和
package.Workbook.Calculate();
Run Code Online (Sandbox Code Playgroud)
没有成功.
UPDATE
我无法在EPPlus中找到这样做的机制,所以仍然想知道是否有答案.但是,因为我正在编辑预先存在的Excel文件,所以我能够在Excel中编辑现有数据透视表的属性,并将设置更改为在首次加载时自动更新.
我找不到使用EPPlus实现这一目标的方法.
但是,您可以在修改文件之前手动启用数据透视表上的"在打开文件时刷新数据"属性,以便在使用Excel打开文件时,将根据修改的数据计算数据透视表的内容.您可以在数据透视表选项中的数据选项卡下找到此属性.
数据透视表在 Excel 文件中具有自己的计算上下文。FullCalcOnLoad您可以使用属性和Calculate()方法来操纵公式的计算
我打赌这里的代码会对您有所帮助。
foreach (Worksheet sheet in package.Workbook.Sheets)
{
foreach (PivotTable pivotTable in sheet.PivotTables())
{
pivotTable.PivotCache().Refresh(); //could be some other method, but i hope you find right one
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3794 次 |
| 最近记录: |