Personalizzazione dei grafici con C++
Creazione di grafici personalizzati
Finora, quando abbiamo parlato di grafici, abbiamo esaminato grafici standard con le loro impostazioni di formattazione standard. Definiamo solo la fonte dei dati, impostiamo alcune proprietà e il grafico viene creato con le sue impostazioni di formato predefinite. Ma le API di Aspose.Cells supportano anche la creazione di grafici personalizzati che permettono agli sviluppatori di creare grafici con le proprie impostazioni di formato.
Gli sviluppatori possono creare grafici personalizzati in fase di esecuzione utilizzando Aspose.Cells.
Un grafico è composto da una serie di dati. Ogni serie di dati in Aspose.Cells è rappresentata da un oggetto Series, mentre un oggetto SeriesCollection funge da collezione di oggetti Series. Creando un grafico personalizzato, gli sviluppatori hanno la libertà di utilizzare diversi tipi di grafici per diverse serie di dati (raccolte nell’oggetto SeriesCollection).
Il codice di esempio di seguito dimostra come creare grafici personalizzati. In questo esempio, utilizzeremo un grafico a colonne per la prima serie di dati e un grafico a linee per la seconda serie. Il risultato è che aggiungiamo un grafico a colonne, combinato con un grafico a linee, al foglio di lavoro.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::Charts;
int main()
{
Aspose::Cells::Startup();
<span class="c1">// Source directory path
U16String srcDir(u"..\Data\01_SourceDirectory\");
<span class="c1">// Output directory path
U16String outDir(u"..\Data\02_OutputDirectory\");
<span class="c1">// Create a new workbook
Workbook workbook;
<span class="c1">// Add a new worksheet to the workbook
int sheetIndex = workbook.GetWorksheets().Add();
<span class="c1">// Obtain the reference of the newly added worksheet by passing its sheet index
Worksheet worksheet = workbook.GetWorksheets().Get(sheetIndex);
<span class="c1">// Add sample values to cells
worksheet.GetCells().Get(u"A1").PutValue(50);
worksheet.GetCells().Get(u"A2").PutValue(100);
worksheet.GetCells().Get(u"A3").PutValue(150);
worksheet.GetCells().Get(u"A4").PutValue(110);
worksheet.GetCells().Get(u"B1").PutValue(260);
worksheet.GetCells().Get(u"B2").PutValue(12);
worksheet.GetCells().Get(u"B3").PutValue(50);
worksheet.GetCells().Get(u"B4").PutValue(100);
<span class="c1">// Add a chart to the worksheet
int chartIndex = worksheet.GetCharts().Add(ChartType::Column, 5, 0, 15, 5);
<span class="c1">// Access the instance of the newly added chart
Chart chart = worksheet.GetCharts().Get(chartIndex);
<span class="c1">// Add NSeries (chart data source) to the chart ranging from "A1" cell to "B4"
chart.GetNSeries().Add(u"A1:B4", true);
<span class="c1">// Set the chart type of 2nd NSeries to display as line chart
chart.GetNSeries().Get(1).SetType(ChartType::Line);
<span class="c1">// Save the Excel file
workbook.Save(outDir + u"output.xls");
<span class="n">std</span><span class="o">::</span><span class="n">cout</span> <span class="o"><<</span> <span class="s">"Chart created successfully!"</span> <span class="o"><<</span> <span class="n">std</span><span class="o">::</span><span class="n">endl</span><span class="p">;</span>
<span class="n">Aspose</span><span class="o">::</span><span class="n">Cells</span><span class="o">::</span><span class="n">Cleanup</span><span class="p">();</span>
}
Attualmente, Aspose.Cells supporta solo grafici personalizzati che combinano grafici a torta, linee, colonne e colonne impilate, ma altri grafici saranno supportati in future versioni.