Я хотел бы знать, как обновить существующий источник данных сводной таблицы. Я использую 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 (...)
. Однако в моей ситуации это не сработает, поскольку пользователи предпочли бы изменить свою сводную таблицу, изменив выбранные поля, строки, столбцы и т. Д. Ее просто нужно обновить при изменении рабочего листа источника данных.