Manipular Tabla Dinámica
Escenarios de uso posibles
Además de crear nuevas tablas dinámicas, puedes manipular las tablas dinámicas nuevas y existentes. Puedes cambiar los datos en el rango de origen de la tabla dinámica y luego actualizarlos y calcularlos para obtener los nuevos valores de las celdas de la tabla dinámica. Por favor, utiliza los métodos PivotTable.RefreshData() y PivotTable.CalculateData() después de haber cambiado los valores en el rango de origen de la tabla dinámica para actualizarla.
Manipular Tabla Dinámica
El siguiente código de ejemplo carga el archivo de Excel de ejemplo y accede a la tabla dinámica existente en su primera hoja de cálculo. Cambia el valor de la celda B3 que está dentro del rango de origen de la tabla dinámica y luego actualiza la tabla dinámica. Antes de actualizarla, accede al valor de la celda de la tabla dinámica H8, que es 15 y después de actualizarla, su valor cambia a 6. Por favor, revisa el archivo de Excel de salida generado con este código y la captura de pantalla que muestra el efecto del código de ejemplo en el archivo de Excel de ejemplo. También revisa la salida en consola que muestra el valor de la celda de la tabla dinámica H8 antes y después de actualizar la tabla dinámica.
Código de muestra
Aspose::Cells::Startup(); | |
//For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C | |
//Source directory path | |
U16String dirPath(u"..\\Data\\PivotTables\\"); | |
//Output directory path | |
U16String outPath(u"..\\Data\\Output\\"); | |
//Path of input excel file | |
U16String sampleManipulatePivotTable = dirPath + u"sampleManipulatePivotTable.xlsx"; | |
//Path of output excel file | |
U16String outputManipulatePivotTable = outPath + u"outputManipulatePivotTable.xlsx"; | |
//Load the sample excel file | |
Workbook wb(sampleManipulatePivotTable); | |
//Access first worksheet | |
Worksheet ws = wb.GetWorksheets().Get(0); | |
//Change value of cell B3 which is inside the source data of pivot table | |
ws.GetCells().Get(u"B3").PutValue(u"Cup"); | |
//Get the value of cell H8 before refreshing pivot table | |
U16String val = ws.GetCells().Get(u"H8").GetStringValue(); | |
std::cout << "Before refreshing Pivot Table value of cell H8: " << val.ToUtf8() << std::endl; | |
//Access pivot table, refresh and calculate it | |
PivotTable pt = ws.GetPivotTables().Get(0); | |
pt.RefreshData(); | |
pt.CalculateData(); | |
//Get the value of cell H8 after refreshing pivot table | |
val = ws.GetCells().Get(u"H8").GetStringValue(); | |
std::cout << "After refreshing Pivot Table value of cell H8: " << val.ToUtf8() << std::endl; | |
//Save the output excel file | |
wb.Save(outputManipulatePivotTable); | |
Aspose::Cells::Cleanup(); |
Salida de la consola
A continuación se muestra la salida en consola del código de ejemplo anterior al ejecutarlo con el archivo de Excel de ejemplo.
Before refreshing Pivot Table value of cell H8: 15
After refreshing Pivot Table value of cell H8: 6