Personalizar la configuración de globalización para la tabla dinámica

Escenarios de uso posibles

A veces quieres personalizar el texto de Pivot Total, Sub Total, Grand Total, All Items, Multiple Items, Column Labels, Row Labels, Blank Values según tus requisitos. Aspose.Cells te permite personalizar la configuración de globalización de la tabla dinámica para tratar con tales escenarios. También puedes usar esta función para cambiar las etiquetas a otros idiomas como árabe, hindi, polaco, etc.

Personalizar la configuración de globalización para la tabla dinámica

El siguiente código de ejemplo explica cómo personalizar la configuración de globalización para la tabla dinámica. Crea una clase CustomPivotTableGlobalizationSettings derivada de una clase base GlobalizationSettings y anula todos sus métodos necesarios. Estos métodos devuelven el texto personalizado para Total de Tabla Dinámica, Subtotal, Gran Total, Todos los Elementos, Múltiples Elementos, Etiquetas de Columna, Etiquetas de Fila, Valores en Blanco. Luego asigna el objeto de esta clase a la propiedad WorkbookSettings.GlobalizationSettings. El código carga el archivo de excel fuente que contiene la tabla dinámica, actualiza y calcula sus datos y lo guarda como archivo PDF de salida. La siguiente captura de pantalla muestra el efecto del código de ejemplo en el archivo PDF de salida. Como se puede ver en la captura de pantalla, diferentes partes de la tabla dinámica ahora tienen un texto personalizado devuelto por los métodos anulados de la clase GlobalizationSettings.

todo:image_alt_text

Código de muestra

// 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();
}