Vorrei sapere come aggiornare un'origine dati della tabella pivot esistente. Sto usando Microsoft.Office.Interop.Excel
e indirizzato agli utenti con Excel 2010.Come aggiornare l'origine dati di tabella pivot usando C#?
Attualmente sono in grado di aggiornare la tabella pivot che funziona correttamente, tuttavia quando vengono aggiunte più righe, desidero includere queste righe nell'origine dati della tabella pivot. Ad esempio, l'origine dati della tabella pivot quando viene visualizzata in Excel è DataSourceWorksheet!$A$2:$U$26
e vorrei che fosse cambiata in DataSourceWorksheet!$A$2:$U$86
(altre 60 righe) dopo l'esecuzione del mio codice file di aggiornamento/aggiornamento.
Ecco una versione semplificata del mio codice
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) */
Una soluzione che può funzionare, sarebbe solo per rigenerare la tabella pivot utilizzando nuovamente wrkBook.PivotTableWizard(...)
. Tuttavia, questo non funzionerà per la mia situazione dato che gli utenti preferirebbero modificare la loro tabella pivot modificando campi, righe, colonne, ecc. Selezionati. È sufficiente aggiornarli quando cambia il foglio di lavoro delle origini dati.
Non so perché questo è stato votato in basso, mi sembra una domanda ragionevole. – neontapir
Sì, non sono nemmeno sicuro, questo non è il tipo di cosa che ho trovato facilmente su MSDN o in risorse simili. –