Personalizza le impostazioni di globalizzazione per la tabella pivot
Possibili Scenari di Utilizzo
A volte si desidera personalizzare i testi Pivot Total, Sub Total, Grand Total, All Items, Multiple Items, Column Labels, Row Labels, Blank Values in base alle proprie esigenze. Aspose.Cells consente di personalizzare le impostazioni di globalizzazione della tabella pivot per gestire tali scenari. È inoltre possibile utilizzare questa funzionalità per modificare le etichette in altre lingue come arabo, hindi, polacco, ecc.
Personalizza le impostazioni di globalizzazione per la tabella pivot
Il seguente codice di esempio spiega come personalizzare le impostazioni di globalizzazione per la tabella pivot. Crea una classe CustomPivotTableGlobalizationSettings derivata da una classe di base PivotGlobalizationSettings e ne sovrascrive tutti i metodi necessari. Questi metodi restituiscono il testo personalizzato per i Pivot Total, Sub Total, Grand Total, All Items, Multiple Items, Column Labels, Row Labels, Blank Values. Quindi assegna l’oggetto di questa classe alla proprietà WorkbookSettings.GlobalizationSettings.PivotSettings. Il codice carica il file excel di origine che contiene la tabella pivot, aggiorna e calcola i dati e lo salva come file PDF di output. La seguente schermata mostra l’effetto del codice di esempio sul PDF di output. Come si può vedere nella schermata, diverse parti della tabella pivot hanno ora un testo personalizzato restituito dai metodi sovrascritti della classe PivotGlobalizationSettings.
Codice di Esempio
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
private class CustomPivotTableGlobalizationSettings : PivotGlobalizationSettings | |
{ | |
//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 override string GetTextOfTotal() | |
{ | |
Console.WriteLine("---------GetPivotTotalName-------------"); | |
return "AsposeGetPivotTotalName"; | |
} | |
//Gets the name of "Grand Total" label in the PivotTable. | |
public override string GetTextOfGrandTotal() | |
{ | |
Console.WriteLine("---------GetPivotGrandTotalName-------------"); | |
return "AsposeGetPivotGrandTotalName"; | |
} | |
//Gets the name of "(Multiple Items)" label in the PivotTable. | |
public override string GetTextOfMultipleItems() | |
{ | |
Console.WriteLine("---------GetMultipleItemsName-------------"); | |
return "AsposeGetMultipleItemsName"; | |
} | |
//Gets the name of "(All)" label in the PivotTable. | |
public override string GetTextOfAll() | |
{ | |
Console.WriteLine("---------GetAllName-------------"); | |
return "AsposeGetAllName"; | |
} | |
//Gets the name of "Column Labels" label in the PivotTable. | |
public override string GetTextOfColumnLabels() | |
{ | |
Console.WriteLine("---------GetColumnLabelsOfPivotTable-------------"); | |
return "AsposeGetColumnLabelsOfPivotTable"; | |
} | |
//Gets the name of "Row Labels" label in the PivotTable. | |
public override string GetTextOfRowLabels() | |
{ | |
Console.WriteLine("---------GetRowLabelsNameOfPivotTable-------------"); | |
return "AsposeGetRowLabelsNameOfPivotTable"; | |
} | |
//Gets the name of "(blank)" label in the PivotTable. | |
public override string GetTextOfEmptyData() | |
{ | |
Console.WriteLine("---------GetEmptyDataName-------------"); | |
return "(blank)AsposeGetEmptyDataName"; | |
} | |
//Gets the name of PivotFieldSubtotalType type in the PivotTable. | |
public override string GetTextOfSubTotal(PivotFieldSubtotalType subTotalType) | |
{ | |
Console.WriteLine("---------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.CountNums: | |
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 static void Run() | |
{ | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
//Load your excel file | |
Workbook wb = new Workbook(dataDir + "samplePivotTableGlobalizationSettings.xlsx"); | |
//Setting Custom Pivot Table Globalization Settings | |
wb.Settings.GlobalizationSettings.PivotSettings = new CustomPivotTableGlobalizationSettings(); | |
//Hide first worksheet that contains the data of the pivot table | |
wb.Worksheets[0].IsVisible = false; | |
//Access second worksheet | |
Worksheet ws = wb.Worksheets[1]; | |
//Access the pivot table, refresh and calculate its data | |
PivotTable pt = ws.PivotTables[0]; | |
pt.RefreshDataFlag = true; | |
pt.RefreshData(); | |
pt.CalculateData(); | |
pt.RefreshDataFlag = false; | |
//Pdf save options - save entire worksheet on a single pdf page | |
PdfSaveOptions options = new PdfSaveOptions(); | |
options.OnePagePerSheet = true; | |
//Save the output pdf | |
wb.Save(dataDir + "outputPivotTableGlobalizationSettings.pdf", options); | |
} |