刷新数据透视表EPPlus

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中编辑现有数据透视表的属性,并将设置更改为在首次加载时自动更新.

Yar*_*onK 8

我找不到使用EPPlus实现这一目标的方法.

但是,您可以在修改文件之前手动启用数据透视表上的"在打开文件时刷新数据"属性,以便在使用Excel打开文件时,将根据修改的数据计算数据透视表的内容.您可以在数据透视表选项中的数据选项卡下找到此属性.


teo*_*kot 0

数据透视表在 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)

  • 我不想使用 Office Interop,所以这个解决方案还不够 (5认同)