版本25.10
示例代码:
SyntaxEditor Code Snippet
var wb =new Workbook(path+“3.xlsx”);
var pivot=wb.Worksheets[“statistics”].PivotTables[“pivot1”];
pivot.RefreshData();
pivot.CalculateData();
wb.Save(path+“4.xlsx”);
3.zip (44.9 KB)
版本25.10
示例代码:
SyntaxEditor Code Snippet
var wb =new Workbook(path+“3.xlsx”);
var pivot=wb.Worksheets[“statistics”].PivotTables[“pivot1”];
pivot.RefreshData();
pivot.CalculateData();
wb.Save(path+“4.xlsx”);
3.zip (44.9 KB)
在您提供的代码中,您正在刷新Excel文件中的数据透视表。如果在刷新第二个数据透视表(pivot1)后,相关的图表(chart0)出现异常,可能是由于数据透视表的数据源或计算方式存在问题。
您可以尝试以下步骤来解决此问题:
CalculateData() 方法来更新数据透视表的计算。以下是您可以使用的代码示例:
var wb = new Workbook(path + "3.xlsx");
var pivot = wb.Worksheets["statistics"].PivotTables["pivot1"];
// 刷新数据透视表
pivot.RefreshData();
pivot.CalculateData();
// 保存工作簿
wb.Save(path + "4.xlsx");
如果问题依然存在,您可能需要检查Excel文件的结构,或考虑重新创建数据透视表和图表以确保它们之间的链接正确。
@cloudy
通过使用样例文件和代码在最新版本v25.10上进行测试,我们可以复现问题。 刷新样例文件中的第二张数据透视表pivot1后,透视表pivot0对应的数据透视图chart0出现显示异常 。
我们已经在内部问题跟踪系统中打开了以下新问题单,并将根据Free Support Policies中提到的条款提供修复。
问题单号:CELLSNET-59192
@cloudy
由于两个透视表引用的是同一份数据源,在刷新后出现了异常。作为临时解决方案,你可以同时刷新两个透视表来得到正确的结果。请参考以下样例代码并查看附件。out_net.zip (44.2 KB)
Workbook wb = new Workbook(filePath +"3.xlsx");
//方法一
//PivotTable pivot = wb.Worksheets["statistics"].PivotTables["pivot1"];
//pivot.RefreshData();
//pivot.CalculateData();
//pivot = wb.Worksheets["statistics"].PivotTables["pivot0"];
//pivot.RefreshData();
//pivot.CalculateData();
//方法二
wb.Worksheets["statistics"].RefreshPivotTables();
wb.Save(filePath +"out_net.xlsx");
希望这些对你有所帮助。
@cloudy
Please refresh all pivot tables as the following :
var wb = new Workbook(dir +"3.xlsx");
//PivotTable pivot = wb.Worksheets["statistics"].PivotTables["pivot1"];
//pivot.RefreshData();
//pivot.CalculateData();
wb.Worksheets.RefreshPivotTables();
wb.Save(dir + "dest.xlsx");
@cloudy
你也可以用以下代码刷新:
var wb = new Workbook(dir +"3.xlsx");
PivotTable pivot = wb.Worksheets["statistics"].PivotTables["pivot1"];
PivotTableCalculateOption calculateOption = new PivotTableCalculateOption();
calculateOption.RefreshData = true;//刷新数据并且所有依赖这个数据源的透视表都会重算。
calculateOption.RefreshCharts = true;
pivot.CalculateData(calculateOption);
// wb.Worksheets.RefreshPivotTables();
wb.Save(dir + "dest.xlsx");