Personnaliser les paramètres de globalisation pour le tableau croisé dynamique
Scénarios d’utilisation possibles
Parfois, vous voulez personnaliser leTotal croisé dynamique, sous-total, total général, tous les éléments, plusieurs éléments, étiquettes de colonne, étiquettes de ligne, valeurs videstexte selon vos besoins. Aspose.Cells vous permet de personnaliser les paramètres de globalisation du tableau croisé dynamique pour faire face à de tels scénarios. Vous pouvez également utiliser cette fonction pour changer les étiquettes en d’autres langues comme l’arabe, l’hindi, le polonais, etc.
Personnaliser les paramètres de globalisation pour le tableau croisé dynamique
L’exemple de code suivant explique comment personnaliser les paramètres de globalisation du tableau croisé dynamique. Il crée une classeCustomPivotTableGlobalizationSettingsCustomPivotTableGlobalizationSettingsCustomPivotTableGlobalizationSettingsCustomPivotTableGlobalizationSettings dérivé d’une classe de baseGlobalizationSettings et remplace toutes ses méthodes nécessaires. Ces méthodes renvoient le texte personnalisé pour leTotal croisé dynamique, sous-total, total général, tous les éléments, plusieurs éléments, étiquettes de colonne, étiquettes de ligne, valeurs vides . Ensuite, il affecte l’objet de cette classe àWorkbookSettings.GlobalizationSettingsWorkbookSettings.GlobalizationSettings la propriété. Le code charge lefichier excel source qui contient le tableau croisé dynamique, actualise et calcule ses données et l’enregistre sousfichier de sortie PDF . La capture d’écran suivante montre l’effet de l’exemple de code sur la sortie PDF. Comme vous pouvez le voir dans la capture d’écran, différentes parties du tableau croisé dynamique ont maintenant un texte personnalisé renvoyé par les méthodes remplacées deGlobalizationSettingsclasse.
Exemple de code
// 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(); | |
} |