ピボットテーブルのグローバリゼーション設定のカスタマイズ

可能な使用シナリオ

Aspose.Cellsでは、Pivot Total、Sub Total、Grand Total、All Items、Multiple Items、Column Labels、Row Labels、Blank Valuesのテキストをカスタマイズして要件に合わせることができます。この機能を使用して、ピボットテーブルのグローバリゼーション設定をカスタマイズしたり、ラベルをアラビア語、ヒンディー語、ポーランド語など他言語に変更したりすることができます。

ピボットテーブルのグローバリゼーション設定のカスタマイズ

次のサンプルコードは、ピボットテーブルのグローバリゼーション設定をカスタマイズする方法を説明しています。これにより、GlobalizationSettingsから派生したCustomPivotTableGlobalizationSettingsクラスを作成し、必要なメソッドをオーバーライドします。これらのメソッドは、Pivot Total, Sub Total, Grand Total, All Items, Multiple Items, Column Labels, Row Labels, Blank Valuesのカスタマイズされたテキストを返します。その後、このクラスのオブジェクトをWorkbookSettings.GlobalizationSettingsプロパティに割り当てます。コードは、ピボットテーブルを含むソースExcelファイルをロードし、そのデータを更新して計算し、出力PDFファイルとして保存します。以下のスクリーンショットは、出力PDF上でサンプルコードの効果を示しています。

todo:image_alt_text

サンプルコード

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
public class CustomizeGlobalizationSettingsforPivotTable {
class CustomPivotTableGlobalizationSettings extends GlobalizationSettings
{
//Gets the name of "Total" label in the PivotTable.
//You need to override this method when the PivotTable contains two or more PivotFields in the data area.
public String getPivotTotalName()
{
System.out.println("---------GetPivotTotalName-------------");
return "AsposeGetPivotTotalName";
}
//Gets the name of "Grand Total" label in the PivotTable.
public String getPivotGrandTotalName()
{
System.out.println("---------GetPivotGrandTotalName-------------");
return "AsposeGetPivotGrandTotalName";
}
//Gets the name of "(Multiple Items)" label in the PivotTable.
public String getMultipleItemsName()
{
System.out.println("---------GetMultipleItemsName-------------");
return "AsposeGetMultipleItemsName";
}
//Gets the name of "(All)" label in the PivotTable.
public String getAllName()
{
System.out.println("---------GetAllName-------------");
return "AsposeGetAllName";
}
//Gets the name of "Column Labels" label in the PivotTable.
public String getColumnLabelsOfPivotTable()
{
System.out.println("---------GetColumnLabelsOfPivotTable-------------");
return "AsposeGetColumnLabelsOfPivotTable";
}
//Gets the name of "Row Labels" label in the PivotTable.
public String getRowLabelsNameOfPivotTable()
{
System.out.println("---------GetRowLabelsNameOfPivotTable-------------");
return "AsposeGetRowLabelsNameOfPivotTable";
}
//Gets the name of "(blank)" label in the PivotTable.
public String getEmptyDataName()
{
System.out.println("---------GetEmptyDataName-------------");
return "(blank)AsposeGetEmptyDataName";
}
//Gets the name of PivotFieldSubtotalType type in the PivotTable.
public String getSubTotalName(int subTotalType)
{
System.out.println("---------GetSubTotalName-------------");
switch (subTotalType)
{
case PivotFieldSubtotalType.SUM:
return "AsposeSum";//polish
case PivotFieldSubtotalType.COUNT:
return "AsposeCount";
case PivotFieldSubtotalType.AVERAGE:
return "AsposeAverage";
case PivotFieldSubtotalType.MAX:
return "AsposeMax";
case PivotFieldSubtotalType.MIN:
return "AsposeMin";
case PivotFieldSubtotalType.PRODUCT:
return "AsposeProduct";
case PivotFieldSubtotalType.COUNT_NUMS:
return "AsposeCount";
case PivotFieldSubtotalType.STDEV:
return "AsposeStdDev";
case PivotFieldSubtotalType.STDEVP:
return "AsposeStdDevp";
case PivotFieldSubtotalType.VAR:
return "AsposeVar";
case PivotFieldSubtotalType.VARP:
return "AsposeVarp";
}
return "AsposeSubTotalName";
}
}
public void RunCustomizeGlobalizationSettingsforPivotTable() throws Exception
{
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(CustomizeGlobalizationSettingsforPivotTable.class) + "PivotTables/";
//Load your excel file
Workbook wb = new Workbook(dataDir + "samplePivotTableGlobalizationSettings.xlsx");
//Setting Custom Pivot Table Globalization Settings
wb.getSettings().setGlobalizationSettings(new CustomPivotTableGlobalizationSettings());
//Hide first worksheet that contains the data of the pivot table
wb.getWorksheets().get(0).setVisible(false);
//Access second worksheet
Worksheet ws = wb.getWorksheets().get(1);
//Access the pivot table, refresh and calculate its data
PivotTable pt = ws.getPivotTables().get(0);
pt.setRefreshDataFlag(true);
pt.refreshData();
pt.calculateData();
pt.setRefreshDataFlag(false);
//Pdf save options - save entire worksheet on a single pdf page
PdfSaveOptions options = new PdfSaveOptions();
options.setOnePagePerSheet(true);
//Save the output pdf
wb.save(dataDir + "outputPivotTableGlobalizationSettings.pdf", options);
}
public static void main(String[] args) throws Exception {
CustomizeGlobalizationSettingsforPivotTable pg = new CustomizeGlobalizationSettingsforPivotTable();
pg.RunCustomizeGlobalizationSettingsforPivotTable();
}