Как обновить источник данных сводной таблицы с помощью C #?

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

8
задан undone 21 November 2011 в 18:41
поделиться