我想知道如何更新现有的数据透视表数据源。我在用Microsoft.Office.Interop.Excel
并针对使用 Excel 2010 的用户。
我目前能够刷新工作正常的数据透视表,但是当添加更多行时,我希望将这些行包含在数据透视表数据源中。例如,在Excel中查看时的数据透视表数据源为DataSourceWorksheet!$A$2:$U$26
我希望将其更改为DataSourceWorksheet!$A$2:$U$86
(还有 60 行)在我的更新/刷新 Excel 文件代码运行后。
这是我的代码的简化版本
Application excelApplication = new Application();
Workbooks workbooks = excelApplication.Workbooks;
wrkBook = workbooks.Open(EXCEL_DOCUMENT_PATH, Missing.Value, false, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, true, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value);
/* update data source worksheet code here (omitted for example) */
Worksheet pivotWorkSheet = (Worksheet)wrkBook.Sheets[PIVOT_SHEET_NAME];
PivotTable pivot = (PivotTable)pivotWorkSheet.PivotTables(pivotTableName);
/* I would like to update the pivot tables data source here...
I could use Range object from data source worksheet...
Basically just want to tell pivot table, use these cells now... */
pivot.RefreshTable();
/* cleanup code here (omitted for example) */
一个可能有效的解决方案是使用以下命令再次重新生成数据透视表wrkBook.PivotTableWizard( ... )
。但是,这不适用于我的情况,因为用户更喜欢通过更改选定的字段、行、列等来修改数据透视表。它只需要在数据源工作表更改时更新。