Управление сводной таблицей
Возможные сценарии использования
Помимо создания новых сводных таблиц, вы можете управлять новыми и существующими сводными таблицами. Вы можете изменить данные в исходном диапазоне сводной таблицы, а затем обновить и рассчитать их, получив новые значения ячеек сводной таблицы. Пожалуйста, используйте методы PivotTable.RefreshData() и PivotTable.CalculateData() после того, как вы изменили значения в исходном диапазоне сводной таблицы, чтобы обновить сводную таблицу.
Управление сводной таблицей
В следующем образце кода загружается образец excel файла и получает доступ к существующей сводной таблице на первом листе. Он меняет значение ячейки B3, которое находится в исходном диапазоне сводной таблицы, а затем обновляет сводную таблицу. Перед обновлением сводной таблицы он получает доступ к значению ячейки H8 сводной таблицы, которое равно 15, а после обновления сводной таблицы его значение меняется на 6. Пожалуйста, ознакомьтесь с результирующем excel файлом, созданным с использованием этого кода, и скриншотом, показывающим эффект кода на образец excel файла. Пожалуйста, также ознакомьтесь с выводом консоли ниже, который показывает значение ячейки сводной таблицы H8 до и после обновления сводной таблицы.
Образец кода
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(); |
Вывод в консоль
Ниже приведен вывод консоли вышеуказанного образца кода при выполнении с предоставленным образцом excel файла.
Before refreshing Pivot Table value of cell H8: 15
After refreshing Pivot Table value of cell H8: 6