Tôi muốn biết cách cập nhật nguồn dữ liệu bảng tổng hợp hiện có. Tôi đang sử dụng Microsoft.Office.Interop.Excel
và nhắm mục tiêu người dùng bằng Excel 2010.Làm cách nào để cập nhật nguồn dữ liệu PivotTable bằng C#?
Tôi hiện có thể làm mới bảng tổng hợp hoạt động tốt, tuy nhiên khi có thêm hàng, tôi muốn bao gồm các hàng này trong nguồn dữ liệu bảng tổng hợp. Ví dụ: nguồn dữ liệu bảng tổng hợp khi được xem trong Excel là DataSourceWorksheet!$A$2:$U$26
và tôi muốn nó được đổi thành DataSourceWorksheet!$A$2:$U$86
(thêm 60 hàng) sau khi mã tệp excel cập nhật/làm mới của tôi đã chạy.
Dưới đây là một phiên bản đơn giản hóa của mã của tôi
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) */
Một giải pháp mà có thể làm việc, sẽ chỉ tạo các bảng pivot một lần nữa sử dụng wrkBook.PivotTableWizard(...)
. Tuy nhiên, điều này sẽ không hoạt động cho tình huống của tôi vì người dùng muốn sửa đổi bảng tổng hợp của họ bằng cách thay đổi các trường, hàng, cột, v.v. được chọn chỉ cần được cập nhật khi bảng nguồn dữ liệu thay đổi.
Không chắc tại sao điều này lại bị bỏ phiếu, có vẻ như là một câu hỏi hợp lý đối với tôi. – neontapir
Vâng, tôi không chắc chắn, đây không phải là loại điều mà tôi đã tìm thấy dễ dàng trên MSDN hoặc trong các tài nguyên tương tự. –