Creazione di un grafico a torta con linee guida
Per dimostrare l’utilizzo di Aspose.Cells for .NET API per creare un grafico a torta con linee guida, creeremo prima un nuovoCartella di lavoro e inserisci alcuni dati che serviranno come origine dati della serie. Una volta inseriti i dati, aggiungeremo aGrafico di tipoChartType.Piealla raccolta di grafici e impostarne i diversi aspetti per ottenere la vista del grafico desiderata.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create an instance of Workbook in XLSX format | |
Workbook workbook = new Workbook(FileFormatType.Xlsx); | |
// Access the first worksheet | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Add two columns of data | |
worksheet.Cells["A1"].PutValue("Retail"); | |
worksheet.Cells["A2"].PutValue("Services"); | |
worksheet.Cells["A3"].PutValue("Info & Communication"); | |
worksheet.Cells["A4"].PutValue("Transport Equip"); | |
worksheet.Cells["A5"].PutValue("Construction"); | |
worksheet.Cells["A6"].PutValue("Other Products"); | |
worksheet.Cells["A7"].PutValue("Wholesale"); | |
worksheet.Cells["A8"].PutValue("Land Transport"); | |
worksheet.Cells["A9"].PutValue("Air Transport"); | |
worksheet.Cells["A10"].PutValue("Electric Appliances"); | |
worksheet.Cells["A11"].PutValue("Securities"); | |
worksheet.Cells["A12"].PutValue("Textiles & Apparel"); | |
worksheet.Cells["A13"].PutValue("Machinery"); | |
worksheet.Cells["A14"].PutValue("Metal Products"); | |
worksheet.Cells["A15"].PutValue("Cash"); | |
worksheet.Cells["A16"].PutValue("Banks"); | |
worksheet.Cells["B1"].PutValue(10.4); | |
worksheet.Cells["B2"].PutValue(5.2); | |
worksheet.Cells["B3"].PutValue(6.4); | |
worksheet.Cells["B4"].PutValue(10.4); | |
worksheet.Cells["B5"].PutValue(7.9); | |
worksheet.Cells["B6"].PutValue(4.1); | |
worksheet.Cells["B7"].PutValue(3.5); | |
worksheet.Cells["B8"].PutValue(5.7); | |
worksheet.Cells["B9"].PutValue(3); | |
worksheet.Cells["B10"].PutValue(14.7); | |
worksheet.Cells["B11"].PutValue(3.6); | |
worksheet.Cells["B12"].PutValue(2.8); | |
worksheet.Cells["B13"].PutValue(7.8); | |
worksheet.Cells["B14"].PutValue(2.4); | |
worksheet.Cells["B15"].PutValue(1.8); | |
worksheet.Cells["B16"].PutValue(10.1); | |
// Create a pie chart and add it to the collection of charts | |
int id = worksheet.Charts.Add(ChartType.Pie, 3, 3, 23, 13); | |
// Access newly created Chart instance | |
Chart chart = worksheet.Charts[id]; | |
// Set series data range | |
chart.NSeries.Add("B1:B16", true); | |
// Set category data range | |
chart.NSeries.CategoryData = "A1:A16"; | |
// Turn off legend | |
chart.ShowLegend = false; | |
// Access data labels | |
DataLabels dataLabels = chart.NSeries[0].DataLabels; | |
// Turn on category names | |
dataLabels.ShowCategoryName = true; | |
// Turn on percentage format | |
dataLabels.ShowPercentage = true; | |
// Set position | |
dataLabels.Position = LabelPositionType.OutsideEnd; | |
// Set separator | |
dataLabels.SeparatorType = DataLabelsSeparatorType.Comma; |
Finora abbiamo creato un grafico a torta e impostato i suoi diversi aspetti. Ora attiveremo le linee guida per il grafico. Si prega di notare che per mostrare le linee guida, dobbiamo spostare leggermente le etichette dei dati.
La parte di codice seguente attiva le linee direttrici, aggiorna il grafico e quindi calcola le posizioni delle etichette dei dati per spostarle di conseguenza.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// Create an instance of Workbook in XLSX format | |
Workbook workbook = new Workbook(FileFormatType.Xlsx); | |
// Access the first worksheet | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Add two columns of data | |
worksheet.Cells["A1"].PutValue("Retail"); | |
worksheet.Cells["A2"].PutValue("Services"); | |
worksheet.Cells["A3"].PutValue("Info & Communication"); | |
worksheet.Cells["A4"].PutValue("Transport Equip"); | |
worksheet.Cells["A5"].PutValue("Construction"); | |
worksheet.Cells["A6"].PutValue("Other Products"); | |
worksheet.Cells["A7"].PutValue("Wholesale"); | |
worksheet.Cells["A8"].PutValue("Land Transport"); | |
worksheet.Cells["A9"].PutValue("Air Transport"); | |
worksheet.Cells["A10"].PutValue("Electric Appliances"); | |
worksheet.Cells["A11"].PutValue("Securities"); | |
worksheet.Cells["A12"].PutValue("Textiles & Apparel"); | |
worksheet.Cells["A13"].PutValue("Machinery"); | |
worksheet.Cells["A14"].PutValue("Metal Products"); | |
worksheet.Cells["A15"].PutValue("Cash"); | |
worksheet.Cells["A16"].PutValue("Banks"); | |
worksheet.Cells["B1"].PutValue(10.4); | |
worksheet.Cells["B2"].PutValue(5.2); | |
worksheet.Cells["B3"].PutValue(6.4); | |
worksheet.Cells["B4"].PutValue(10.4); | |
worksheet.Cells["B5"].PutValue(7.9); | |
worksheet.Cells["B6"].PutValue(4.1); | |
worksheet.Cells["B7"].PutValue(3.5); | |
worksheet.Cells["B8"].PutValue(5.7); | |
worksheet.Cells["B9"].PutValue(3); | |
worksheet.Cells["B10"].PutValue(14.7); | |
worksheet.Cells["B11"].PutValue(3.6); | |
worksheet.Cells["B12"].PutValue(2.8); | |
worksheet.Cells["B13"].PutValue(7.8); | |
worksheet.Cells["B14"].PutValue(2.4); | |
worksheet.Cells["B15"].PutValue(1.8); | |
worksheet.Cells["B16"].PutValue(10.1); | |
// Create a pie chart and add it to the collection of charts | |
int id = worksheet.Charts.Add(ChartType.Pie, 3, 3, 23, 13); | |
// Access newly created Chart instance | |
Chart chart = worksheet.Charts[id]; | |
// Set series data range | |
chart.NSeries.Add("B1:B16", true); | |
// Set category data range | |
chart.NSeries.CategoryData = "A1:A16"; | |
// Turn off legend | |
chart.ShowLegend = false; | |
// Access data labels | |
DataLabels dataLabels = chart.NSeries[0].DataLabels; | |
// Turn on category names | |
dataLabels.ShowCategoryName = true; | |
// Turn on percentage format | |
dataLabels.ShowPercentage = true; | |
// Set position | |
dataLabels.Position = LabelPositionType.OutsideEnd; | |
// Set separator | |
dataLabels.SeparatorType = DataLabelsSeparatorType.Comma; | |
// Turn on leader lines | |
chart.NSeries[0].HasLeaderLines = true; | |
// Calculete chart | |
chart.Calculate(); | |
// You need to move DataLabels a little leftward or rightward depending on their position to show leader lines | |
int DELTA = 100; | |
for (int i = 0; i < chart.NSeries[0].Points.Count; i++) | |
{ | |
int X = chart.NSeries[0].Points[i].DataLabels.X; | |
// If it is greater than 2000, then move the X position a little right otherwise move the X position a little left | |
if (X > 2000) | |
chart.NSeries[0].Points[i].DataLabels.X = X + DELTA; | |
else | |
chart.NSeries[0].Points[i].DataLabels.X = X - DELTA; | |
} |
Infine, il codice seguente salva il grafico in formato immagine e la cartella di lavoro in formato XLSX.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// Create an instance of Workbook in XLSX format | |
Workbook workbook = new Workbook(FileFormatType.Xlsx); | |
// Access the first worksheet | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Add two columns of data | |
worksheet.Cells["A1"].PutValue("Retail"); | |
worksheet.Cells["A2"].PutValue("Services"); | |
worksheet.Cells["A3"].PutValue("Info & Communication"); | |
worksheet.Cells["A4"].PutValue("Transport Equip"); | |
worksheet.Cells["A5"].PutValue("Construction"); | |
worksheet.Cells["A6"].PutValue("Other Products"); | |
worksheet.Cells["A7"].PutValue("Wholesale"); | |
worksheet.Cells["A8"].PutValue("Land Transport"); | |
worksheet.Cells["A9"].PutValue("Air Transport"); | |
worksheet.Cells["A10"].PutValue("Electric Appliances"); | |
worksheet.Cells["A11"].PutValue("Securities"); | |
worksheet.Cells["A12"].PutValue("Textiles & Apparel"); | |
worksheet.Cells["A13"].PutValue("Machinery"); | |
worksheet.Cells["A14"].PutValue("Metal Products"); | |
worksheet.Cells["A15"].PutValue("Cash"); | |
worksheet.Cells["A16"].PutValue("Banks"); | |
worksheet.Cells["B1"].PutValue(10.4); | |
worksheet.Cells["B2"].PutValue(5.2); | |
worksheet.Cells["B3"].PutValue(6.4); | |
worksheet.Cells["B4"].PutValue(10.4); | |
worksheet.Cells["B5"].PutValue(7.9); | |
worksheet.Cells["B6"].PutValue(4.1); | |
worksheet.Cells["B7"].PutValue(3.5); | |
worksheet.Cells["B8"].PutValue(5.7); | |
worksheet.Cells["B9"].PutValue(3); | |
worksheet.Cells["B10"].PutValue(14.7); | |
worksheet.Cells["B11"].PutValue(3.6); | |
worksheet.Cells["B12"].PutValue(2.8); | |
worksheet.Cells["B13"].PutValue(7.8); | |
worksheet.Cells["B14"].PutValue(2.4); | |
worksheet.Cells["B15"].PutValue(1.8); | |
worksheet.Cells["B16"].PutValue(10.1); | |
// Create a pie chart and add it to the collection of charts | |
int id = worksheet.Charts.Add(ChartType.Pie, 3, 3, 23, 13); | |
// Access newly created Chart instance | |
Chart chart = worksheet.Charts[id]; | |
// Set series data range | |
chart.NSeries.Add("B1:B16", true); | |
// Set category data range | |
chart.NSeries.CategoryData = "A1:A16"; | |
// Turn off legend | |
chart.ShowLegend = false; | |
// Access data labels | |
DataLabels dataLabels = chart.NSeries[0].DataLabels; | |
// Turn on category names | |
dataLabels.ShowCategoryName = true; | |
// Turn on percentage format | |
dataLabels.ShowPercentage = true; | |
// Set position | |
dataLabels.Position = LabelPositionType.OutsideEnd; | |
// Set separator | |
dataLabels.SeparatorType = DataLabelsSeparatorType.Comma; | |
// In order to save the chart image, create an instance of ImageOrPrintOptions | |
ImageOrPrintOptions anOption = new ImageOrPrintOptions(); | |
// Set image format | |
anOption.ImageType = Drawing.ImageType.Png; | |
// Set resolution | |
anOption.HorizontalResolution = 200; | |
anOption.VerticalResolution = 200; | |
// Render chart to image | |
chart.ToImage(dataDir + "output_out.png", anOption); | |
// Save the workbook to see chart inside the Excel | |
workbook.Save(dataDir + "output_out.xlsx"); |
Grafico a torta risultante |
---|
![]() |
Argomenti avanzati
- Colori di sezioni o settori personalizzati nel grafico a torta
- Scopri se i punti dati si trovano nella seconda torta o barra su un grafico a torta o a barre