我想知道如何更新现有的数据透视表数据源。我使用Microsoft.Office.Interop.Excel
与Excel 2010中如何使用C#更新数据透视表数据源?
针对用户目前我能够刷新数据透视表,工作正常,但是当更多的行添加我想包括在数据透视表的数据源,这些行。例如,在Excel中查看数据透视表数据源是DataSourceWorksheet!$A$2:$U$26
,我希望在更新/刷新excel文件代码运行后将其更改为DataSourceWorksheet!$A$2:$U$86
(多60行)。
这里是我的代码
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(...)
一个解决方案的简化版本。但是,这不适用于我的情况,因为用户更喜欢通过更改选定的字段,行,列等来修改数据透视表。只需在数据源工作表更改时更新它。
不知道为什么这是被拒绝的,似乎对我来说是一个合理的问题。 – neontapir
是的,我也不确定,这不是我在MSDN或类似资源中轻松找到的那种东西。 –