用 C++ 在 ODS 文件中保存数据透视表
Contents
[
Hide
]
Aspose.Cells 提供在 ODS 文件中保存数据透视表的功能。你可以将带有现有数据透视表的工作簿转换为文件,或者创建新的数据透视表并保存为 ODS 格式。在保存前调用 PivotTable::CalculateData() 方法以确保数据透视表能在输出的 ODS 文件中正确渲染。以下代码示例演示如何将数据透视表保存为 ODS 文件。
示例代码
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Create a new workbook
Workbook workbook;
// Get the first worksheet
Worksheet sheet = workbook.GetWorksheets().Get(0);
// Get cells collection
Cells cells = sheet.GetCells();
// Set values to cells
Cell cell = cells.Get(u"A1");
cell.PutValue(u"Sport");
cell = cells.Get(u"B1");
cell.PutValue(u"Quarter");
cell = cells.Get(u"C1");
cell.PutValue(u"Sales");
cell = cells.Get(u"A2");
cell.PutValue(u"Golf");
cell = cells.Get(u"A3");
cell.PutValue(u"Golf");
cell = cells.Get(u"A4");
cell.PutValue(u"Tennis");
cell = cells.Get(u"A5");
cell.PutValue(u"Tennis");
cell = cells.Get(u"A6");
cell.PutValue(u"Tennis");
cell = cells.Get(u"A7");
cell.PutValue(u"Tennis");
cell = cells.Get(u"A8");
cell.PutValue(u"Golf");
cell = cells.Get(u"B2");
cell.PutValue(u"Qtr3");
cell = cells.Get(u"B3");
cell.PutValue(u"Qtr4");
cell = cells.Get(u"B4");
cell.PutValue(u"Qtr3");
cell = cells.Get(u"B5");
cell.PutValue(u"Qtr4");
cell = cells.Get(u"B6");
cell.PutValue(u"Qtr3");
cell = cells.Get(u"B7");
cell.PutValue(u"Qtr4");
cell = cells.Get(u"B8");
cell.PutValue(u"Qtr3");
cell = cells.Get(u"C2");
cell.PutValue(1500);
cell = cells.Get(u"C3");
cell.PutValue(2000);
cell = cells.Get(u"C4");
cell.PutValue(600);
cell = cells.Get(u"C5");
cell.PutValue(1500);
cell = cells.Get(u"C6");
cell.PutValue(4070);
cell = cells.Get(u"C7");
cell.PutValue(5000);
cell = cells.Get(u"C8");
cell.PutValue(6430);
// Get pivot tables collection
PivotTableCollection pivotTables = sheet.GetPivotTables();
// Add a pivot table to the worksheet
int index = pivotTables.Add(u"=A1:C8", u"E3", u"PivotTable2");
// Access the newly added pivot table
PivotTable pivotTable = pivotTables.Get(index);
// Unshow grand totals for rows
pivotTable.SetRowGrand(false);
// Add fields to the pivot table
pivotTable.AddFieldToArea(PivotFieldType::Row, 0);
pivotTable.AddFieldToArea(PivotFieldType::Column, 1);
pivotTable.AddFieldToArea(PivotFieldType::Data, 2);
// Calculate pivot table data
pivotTable.CalculateData();
// Save the workbook
workbook.Save(outDir + u"PivotTableSaveInODS_out.ods");
Aspose::Cells::Cleanup();
}
上述代码生成的输出文件附在此供您参考。