Formattazione del grafico
Impostazione dell’aspetto del grafico
InTipi di grafici, abbiamo fornito una breve introduzione ai tipi di grafici e oggetti grafici offerti da Aspose.Cells.
In questo articolo, discutiamo come personalizzare l’aspetto dei grafici impostando una serie di proprietà diverse:
- Impostazione dell’area del grafico.
- Impostazione delle linee del grafico.
- Applicazione di temi.
- Impostazione di titoli su grafici e assi.
- Lavorare con le linee della griglia.
- Impostazione dei bordi per le pareti posteriori e laterali.
Impostazione dell’area del grafico
Esistono diversi tipi di aree in un grafico e Aspose.Cells offre la flessibilità di modificare l’aspetto di ciascuna area. Gli sviluppatori possono applicare diverse impostazioni di formattazione su un’area modificandone il colore di primo piano, il colore di sfondo e il formato di riempimento, ecc.
Nell’esempio fornito di seguito, abbiamo applicato diverse impostazioni di formattazione su diversi tipi di aree di un grafico. Queste aree includono:
- Area del grafico
- Zona cartografica
- SerieCollezione la zona
- L’area di un singolo punto in anSerieCollezione
Dopo aver eseguito il codice di esempio, un istogramma verrà aggiunto al foglio di lavoro come mostrato di seguito:
Un istogramma con aree piene
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(SettingChartArea.class) + "charts/"; | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(); | |
WorksheetCollection worksheets = workbook.getWorksheets(); | |
// Obtaining the reference of the newly added worksheet by passing its | |
// sheet index | |
Worksheet worksheet = worksheets.get(0); | |
Cells cells = worksheet.getCells(); | |
// Adding a sample value to "A1" cell | |
cells.get("A1").setValue(50); | |
// Adding a sample value to "A2" cell | |
cells.get("A2").setValue(100); | |
// Adding a sample value to "A3" cell | |
cells.get("A3").setValue(150); | |
// Adding a sample value to "B1" cell | |
cells.get("B1").setValue(60); | |
// Adding a sample value to "B2" cell | |
cells.get("B2").setValue(32); | |
// Adding a sample value to "B3" cell | |
cells.get("B3").setValue(50); | |
// Adding a chart to the worksheet | |
ChartCollection charts = worksheet.getCharts(); | |
// Accessing the instance of the newly added chart | |
int chartIndex = charts.add(ChartType.COLUMN, 5, 0, 15, 7); | |
Chart chart = charts.get(chartIndex); | |
// Adding NSeries (chart data source) to the chart ranging from "A1" | |
// cell | |
SeriesCollection nSeries = chart.getNSeries(); | |
nSeries.add("A1:B3", true); | |
// Setting the foreground color of the plot area | |
ChartFrame plotArea = chart.getPlotArea(); | |
Area area = plotArea.getArea(); | |
area.setForegroundColor(Color.getBlue()); | |
// Setting the foreground color of the chart area | |
ChartArea chartArea = chart.getChartArea(); | |
area = chartArea.getArea(); | |
area.setForegroundColor(Color.getYellow()); | |
// Setting the foreground color of the 1st NSeries area | |
Series aSeries = nSeries.get(0); | |
area = aSeries.getArea(); | |
area.setForegroundColor(Color.getRed()); | |
// Setting the foreground color of the area of the 1st NSeries point | |
ChartPointCollection chartPoints = aSeries.getPoints(); | |
ChartPoint point = chartPoints.get(0); | |
point.getArea().setForegroundColor(Color.getCyan()); | |
// Save the Excel file | |
workbook.save(dataDir + "SettingChartArea_out.xls"); | |
// Print message | |
System.out.println("ChartArea is settled successfully."); |
Impostazione delle linee del grafico
Gli sviluppatori possono anche applicare diversi tipi di stili alle linee o agli indicatori di dati del fileSerieCollezionecome mostrato di seguito nell’esempio. L’esecuzione del codice di esempio aggiunge un istogramma al foglio di lavoro come mostrato di seguito:
Istogramma dopo l’applicazione degli stili di linea
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(SettingChartLines.class) + "charts/"; | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(dataDir + "book1.xls"); | |
WorksheetCollection worksheets = workbook.getWorksheets(); | |
// Obtaining the reference of the newly added worksheet by passing its | |
// sheet index | |
Worksheet worksheet = worksheets.get(0); | |
Cells cells = worksheet.getCells(); | |
// Adding a chart to the worksheet | |
ChartCollection charts = worksheet.getCharts(); | |
Chart chart = charts.get(0); | |
// Adding NSeries (chart data source) to the chart ranging from "A1" | |
// cell | |
SeriesCollection nSeries = chart.getNSeries(); | |
nSeries.add("A1:B3", true); | |
Series aSeries = nSeries.get(0); | |
Line line = aSeries.getSeriesLines(); | |
line.setStyle(LineType.DOT); | |
// Applying a triangular marker style on the data markers of an NSeries | |
aSeries.getMarker().setMarkerStyle(ChartMarkerType.TRIANGLE); | |
// Setting the weight of all lines in an NSeries to medium | |
aSeries = nSeries.get(1); | |
line = aSeries.getSeriesLines(); | |
line.setWeight(WeightType.MEDIUM_LINE); | |
// Save the Excel file | |
workbook.save(dataDir + "SettingChartLines_out.xls"); | |
// Print message | |
System.out.println("ChartArea is settled successfully."); |
Applicazione di temi Microsoft Excel 2007/2010 ai grafici
Gli sviluppatori possono applicare diversi temi e colori di Excel Microsoft al fileSerieCollezioneo altri oggetti cartografici come mostrato nell’esempio seguente.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(ApplyingThemes.class) + "charts/"; | |
// Instantiate the workbook to open the file that contains a chart | |
Workbook workbook = new Workbook(dataDir + "book1.xls"); | |
// Get the first worksheet | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Get the first chart in the sheet | |
Chart chart = worksheet.getCharts().get(0); | |
// Specify the FilFormat's type to Solid Fill of the first series | |
chart.getNSeries().get(0).getArea().getFillFormat().setFillType(FillType.SOLID); | |
// Get the CellsColor of SolidFill | |
CellsColor cc = chart.getNSeries().get(0).getArea().getFillFormat().getSolidFill().getCellsColor(); | |
// Create a theme in Accent style | |
cc.setThemeColor(new ThemeColor(ThemeColorType.ACCENT_6, 0.6)); | |
// Apply the them to the series | |
chart.getNSeries().get(0).getArea().getFillFormat().getSolidFill().setCellsColor(cc); | |
// Save the Excel file | |
workbook.save(dataDir + "AThemes_out.xlsx"); |
Impostazione dei titoli dei grafici o degli assi
È possibile utilizzare Microsoft Excel per impostare i titoli di un grafico e i suoi assi in un ambiente WYSIWYG come mostrato di seguito.
Impostazione dei titoli di un grafico e dei suoi assi utilizzando Microsoft Excel
Aspose.Cells consente inoltre agli sviluppatori di impostare i titoli di un grafico e i suoi assi in fase di esecuzione. Tutti i grafici e i relativi assi contengono aTitolo.setTextmetodo che può essere utilizzato per impostare i loro titoli come mostrato di seguito in un esempio. Dopo aver eseguito il codice di esempio, un istogramma verrà aggiunto al foglio di lavoro come mostrato di seguito:
Istogramma dopo aver impostato i titoli
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(SettingTitlesAxes.class) + "charts/"; | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(dataDir + "book1.xls"); | |
WorksheetCollection worksheets = workbook.getWorksheets(); | |
// Obtaining the reference of the newly added worksheet by passing its | |
// sheet index | |
Worksheet worksheet = worksheets.get(0); | |
Cells cells = worksheet.getCells(); | |
// Adding a chart to the worksheet | |
ChartCollection charts = worksheet.getCharts(); | |
// Accessing the instance of the newly added chart | |
int chartIndex = charts.add(ChartType.COLUMN, 5, 0, 15, 7); | |
Chart chart = charts.get(chartIndex); | |
// Setting the title of a chart | |
Title title = chart.getTitle(); | |
title.setText("ASPOSE"); | |
// Setting the font color of the chart title to blue | |
Font font = title.getFont(); | |
font.setColor(Color.getBlue()); | |
// Setting the title of category axis of the chart | |
Axis categoryAxis = chart.getCategoryAxis(); | |
title = categoryAxis.getTitle(); | |
title.setText("Category"); | |
// Setting the title of value axis of the chart | |
Axis valueAxis = chart.getValueAxis(); | |
title = valueAxis.getTitle(); | |
title.setText("Value"); | |
// Adding NSeries (chart data source) to the chart ranging from "A1" | |
// cell | |
SeriesCollection nSeries = chart.getNSeries(); | |
nSeries.add("A1:B3", true); | |
// Setting the foreground color of the plot area | |
ChartFrame plotArea = chart.getPlotArea(); | |
Area area = plotArea.getArea(); | |
area.setForegroundColor(Color.getBlue()); | |
// Setting the foreground color of the chart area | |
ChartArea chartArea = chart.getChartArea(); | |
area = chartArea.getArea(); | |
area.setForegroundColor(Color.getYellow()); | |
// Setting the foreground color of the 1st NSeries area | |
Series aSeries = nSeries.get(0); | |
area = aSeries.getArea(); | |
area.setForegroundColor(Color.getRed()); | |
// Setting the foreground color of the area of the 1st NSeries point | |
ChartPointCollection chartPoints = aSeries.getPoints(); | |
ChartPoint point = chartPoints.get(0); | |
point.getArea().setForegroundColor(Color.getCyan()); | |
// Save the Excel file | |
workbook.save(dataDir + "SettingTitlesAxes_out.xls"); | |
// Print message | |
System.out.println("Chart Title is changed successfully."); |
Impostazione delle principali linee della griglia
Nascondere le principali linee della griglia
Gli sviluppatori possono controllare la visibilità delle principali griglie utilizzando ilsetVisible metodo delLineaoggetto. Dopo aver nascosto le linee della griglia principali, un istogramma aggiunto al foglio di lavoro ha il seguente aspetto:
Un istogramma con griglie principali nascoste
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// Hiding the major gridlines of value axis | |
Axis valueAxis = chart.getValueAxis(); | |
Line majorGridLines = valueAxis.getMajorGridLines(); | |
majorGridLines.setVisible(false); |
Modifica delle impostazioni della griglia principale
Gli sviluppatori non possono solo controllare la visibilità delle principali griglie, ma anche altre proprietà, incluso il colore, ecc. Dopo aver impostato il colore delle principali griglie, un istogramma aggiunto al foglio di lavoro avrà il seguente aspetto:
Istogramma con griglia principale colorata
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// Setting the color of major gridlines of value axis to silver | |
Axis categoryAxis = chart.getCategoryAxis(); | |
categoryAxis.getMajorGridLines().setColor(Color.getSilver()); |
Impostazione dei bordi per le pareti posteriori e laterali
Dal rilascio di Microsoft Excel 2007, le pareti di un grafico 3D sono state divise in due parti: parete laterale e parete posteriore, quindi dobbiamo utilizzare dueMuri oggetti per rappresentarli separatamente ed è possibile accedervi utilizzandoGrafico.getBackWall() eGrafico.getSideWall().
L’esempio fornito di seguito mostra come impostare il bordo del fianco utilizzando diversi attributi.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// Get the side wall border line | |
Line sideLine = chart.getSideWall().getBorder(); | |
// Make it visible | |
sideLine.setVisible(true); | |
// Set the solid line | |
sideLine.setStyle(LineType.SOLID); | |
// Set the line width | |
sideLine.setWeight(10); | |
// Set the color | |
sideLine.setColor(Color.getBlack()); |
Modificare la posizione e le dimensioni del grafico
A volte, si desidera modificare la posizione o le dimensioni del grafico nuovo o esistente all’interno del foglio di lavoro. Aspose.Cells fornisce ilGrafico.getChartObject()proprietà per raggiungere questo obiettivo. Puoi utilizzare le sue proprietà secondarie per ridimensionare il grafico con newaltezza elarghezza o riposizionarlo con new** X** e**Coordinate Y**.
Modifica della posizione e delle dimensioni del grafico
Per modificare la posizione (coordinate X, Y) e le dimensioni (altezza, larghezza) del grafico, utilizzare queste proprietà:
- Grafico.getChartObject().get/setWidth()
- Grafico.getChartObject().get/setHeight()
- Grafico.getChartObject().get/setX()
- Grafico.getChartObject().get/setY()
L’esempio seguente spiega l’utilizzo delle proprietà precedenti. Carica la cartella di lavoro esistente che contiene un grafico nel suo primo foglio di lavoro. Quindi ridimensiona e riposiziona il grafico e salva la cartella di lavoro.
Prima dell’esecuzione del codice di esempio, il file sorgente ha questo aspetto:
Dimensioni e posizione del grafico prima dell’esecuzione del codice di esempio
Dopo l’esecuzione, il file di output si presenta così:
Dimensioni e posizione del grafico dopo l’esecuzione del codice di esempio
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(ChangeChartPositionAndSize.class) + "charts/"; | |
String filePath = dataDir + "book1.xls"; | |
Workbook workbook = new Workbook(filePath); | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Load the chart from source worksheet | |
Chart chart = worksheet.getCharts().get(0); | |
// Resize the chart | |
chart.getChartObject().setWidth(400); | |
chart.getChartObject().setHeight(300); | |
// Reposition the chart | |
chart.getChartObject().setX(250); | |
chart.getChartObject().setY(150); | |
// Output the file | |
workbook.save(dataDir + "ChangeChartPositionAndSize_out.xls"); | |
// Print message | |
System.out.println("Position and Size of Chart is changed successfully."); |
Manipolazione di grafici Designer
C’è un momento in cui potrebbe essere necessario manipolare o modificare i grafici nei file modello del designer. Aspose.Cells supporta pienamente la manipolazione dei grafici dei designer con i suoi contenuti ed elementi. I dati, i contenuti del grafico, l’immagine di sfondo e la formattazione possono essere preservati con precisione.
Manipolazione dei grafici Designer nei file modello
Per manipolare i grafici del designer in un file modello, utilizzare tutte le chiamate API relative al grafico. Ad esempio, usaFoglio di lavoro.getCharts property per ottenere la raccolta di grafici esistente nel file modello.
Creazione di un grafico
L’esempio seguente mostra come creare un grafico a torta. Manipoleremo questo grafico in seguito. Il seguente output è generato dal codice.
Il grafico a torta di input
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(CreateChart.class) + "charts/"; | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(); | |
// Obtaining the reference of the first worksheet | |
WorksheetCollection worksheets = workbook.getWorksheets(); | |
Worksheet sheet = worksheets.get(0); | |
// Adding some sample value to cells | |
Cells cells = sheet.getCells(); | |
Cell cell = cells.get("A1"); | |
cell.setValue(50); | |
cell = cells.get("A2"); | |
cell.setValue(100); | |
cell = cells.get("A3"); | |
cell.setValue(150); | |
cell = cells.get("B1"); | |
cell.setValue(4); | |
cell = cells.get("B2"); | |
cell.setValue(20); | |
cell = cells.get("B3"); | |
cell.setValue(50); | |
ChartCollection charts = sheet.getCharts(); | |
// Adding a chart to the worksheet | |
int chartIndex = charts.add(ChartType.PYRAMID, 5, 0, 15, 5); | |
Chart chart = charts.get(chartIndex); | |
// Adding NSeries (chart data source) to the chart ranging from "A1" | |
// cell to "B3" | |
SeriesCollection serieses = chart.getNSeries(); | |
serieses.add("A1:B3", true); | |
// Saving the Excel file | |
workbook.save(dataDir + "CreateChart_out.xls"); | |
// Print message | |
System.out.println("Workbook with chart is successfully created."); |
Manipolazione del grafico
L’esempio seguente mostra come manipolare il grafico esistente. In questo esempio modifichiamo il grafico creato sopra. Il seguente output è generato dal codice. Si noti che il colore del titolo del grafico è cambiato da blu a nero e “England 30000” è stato modificato in “United Kingdom, 30K”.
Il grafico a torta è stato modificato
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(ModifyPieChart.class) + "charts/"; | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(dataDir + "ModifyCharts.xlsx"); | |
// Obtaining the reference of the first worksheet | |
WorksheetCollection worksheets = workbook.getWorksheets(); | |
Worksheet sheet = worksheets.get(1); | |
// Load the chart from source worksheet | |
Chart chart = sheet.getCharts().get(0); | |
DataLabels datalabels = chart.getNSeries().get(0).getPoints().get(0).getDataLabels(); | |
datalabels.setText("aspose"); | |
// Saving the Excel file | |
workbook.save(dataDir + "ModifyPieChart_out.xls"); | |
// Print message | |
System.out.println("Pie chart is successfully modified."); |
Manipolazione di un grafico a linee nel modello Designer
In questo esempio, manipoleremo un grafico a linee. Aggiungeremo alcune serie di dati al grafico esistente e cambieremo i loro colori di linea.
Innanzitutto, dai un’occhiata al grafico a linee del designer.
Il grafico a linee di input
Ora manipoliamo il grafico a linee (che è contenuto nel filegrafico a linee.xls file) utilizzando il seguente codice. Il seguente output è generato dal codice.
Il grafico a linee manipolato
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(ModifyLineChart.class) + "charts/"; | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(dataDir + "book1.xls"); | |
// Obtaining the reference of the first worksheet | |
WorksheetCollection worksheets = workbook.getWorksheets(); | |
Worksheet sheet = worksheets.get(0); | |
// Load the chart from source worksheet | |
Chart chart = sheet.getCharts().get(0); | |
// Adding NSeries (chart data source) to the chart ranging from "A1" | |
// cell to "B3" | |
SeriesCollection serieses = chart.getNSeries(); | |
serieses.add("{20,40,90}", true); | |
serieses.add("{110,70,220}", true); | |
// Saving the Excel file | |
workbook.save(dataDir + "ModifyLineChart_out.xls"); | |
// Print message | |
System.out.println("Line chart is successfully modified."); |
Utilizzo di sparkline
Microsoft Excel 2010 può analizzare le informazioni in più modi che mai. Consente agli utenti di tracciare ed evidenziare importanti tendenze dei dati con nuovi strumenti di analisi e visualizzazione dei dati. I grafici sparkline sono mini-grafici che puoi posizionare all’interno delle celle in modo da poter visualizzare i dati e il grafico sulla stessa tabella. Quando i grafici sparkline vengono utilizzati correttamente, l’analisi dei dati è più rapida e mirata. Forniscono anche una semplice visualizzazione delle informazioni, evitando fogli di lavoro sovraffollati con molti grafici occupati.
Aspose.Cells fornisce un API per la manipolazione dei grafici sparkline nei fogli di calcolo.
Sparkline in Microsoft Excel
Per inserire sparkline in Microsoft Excel 2010:
- Seleziona le celle in cui vuoi che appaiano i grafici sparkline. Per facilitarne la visualizzazione, seleziona le celle a lato dei dati.
- ClicInserire sul nastro e poi sceglicolonna nelSparkline gruppo.
- Seleziona o immetti l’intervallo di celle nel foglio di lavoro che contiene i dati di origine. Vengono visualizzati i grafici.
Gli sparkline ti aiutano a vedere le tendenze, ad esempio, o il record di vittorie o sconfitte per un campionato di softball. Gli sparkline possono anche riassumere l’intera stagione di ogni squadra del campionato.
Sparkline utilizzando Aspose.Cells
Gli sviluppatori possono creare, eliminare o leggere sparkline (nel file modello) utilizzando API fornito da Aspose.Cells. Aggiungendo grafici personalizzati per un determinato intervallo di dati, gli sviluppatori hanno la libertà di aggiungere diversi tipi di piccoli grafici alle aree delle celle selezionate.
L’esempio seguente mostra la funzionalità Sparkline. L’esempio mostra come:
- Apri un semplice file modello.
- Leggi le informazioni sugli sparkline per un foglio di lavoro.
- Aggiungi nuovi grafici sparkline per un determinato intervallo di dati a un’area della cella.
- Salva il file Excel su disco.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(UsingSparklines.class) + "charts/"; | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(); | |
WorksheetCollection worksheets = workbook.getWorksheets(); | |
// Obtaining the reference of the first worksheet | |
Worksheet worksheet = worksheets.get(0); | |
Cells cells = worksheet.getCells(); | |
System.out.println("Sparkline count: " + worksheet.getSparklineGroupCollection().getCount()); | |
for (int i = 0; i < worksheet.getSparklineGroupCollection().getCount(); i++) { | |
SparklineGroup g = worksheet.getSparklineGroupCollection().get(i); | |
System.out.println("sparkline group: type:" + g.getType()); | |
for (int j = 0; j < g.getSparklineCollection().getCount(); i++) { | |
Sparkline gg = g.getSparklineCollection().get(i); | |
System.out.println("sparkline: row:" + gg.getRow() + ", col:" + gg.getColumn() + ", dataRange:" | |
+ gg.getDataRange()); | |
} | |
} | |
// Add Sparklines | |
// Define the CellArea D2:D10 | |
CellArea ca = new CellArea(); | |
ca.StartColumn = 4; | |
ca.EndColumn = 4; | |
ca.StartRow = 1; | |
ca.EndRow = 7; | |
int idx = worksheet.getSparklineGroupCollection().add(SparklineType.COLUMN, "Sheet1!B2:D8", false, ca); | |
SparklineGroup group = worksheet.getSparklineGroupCollection().get(idx); | |
// Create CellsColor | |
CellsColor clr = workbook.createCellsColor(); | |
clr.setColor(Color.getChocolate()); | |
group.setSeriesColor(clr); | |
workbook.save(dataDir + "UsingSparklines_out.xls"); | |
// Print message | |
System.out.println("Workbook with chart is created successfully."); |
Applicazione del formato 3D al grafico
Potresti aver bisogno di stili di grafici 3D in modo da poter ottenere solo i risultati per il tuo scenario. Le API Aspose.Cells forniscono il API pertinente per applicare la formattazione 3D di Excel 2007 Microsoft, come illustrato in questo articolo.
Impostazione del formato 3D sulla carta
Di seguito viene fornito un esempio completo per dimostrare come creare un grafico e applicare la formattazione 3D di Excel 2007 Microsoft. Dopo aver eseguito il codice di esempio precedente, un istogramma (con effetti 3D) verrà aggiunto al foglio di lavoro come mostrato di seguito.
Un istogramma con formattazione 3D
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(Applying3DFormat.class) + "charts/"; | |
// Instantiate a new Workbook | |
Workbook book = new Workbook(); | |
// Add a Data Worksheet | |
Worksheet dataSheet = book.getWorksheets().add("DataSheet"); | |
// Add Chart Worksheet | |
Worksheet sheet = book.getWorksheets().add("MyChart"); | |
// Put some values into the cells in the data worksheet | |
dataSheet.getCells().get("B1").putValue(1); | |
dataSheet.getCells().get("B2").putValue(2); | |
dataSheet.getCells().get("B3").putValue(3); | |
dataSheet.getCells().get("A1").putValue("A"); | |
dataSheet.getCells().get("A2").putValue("B"); | |
dataSheet.getCells().get("A3").putValue("C"); | |
// Define the Chart Collection | |
ChartCollection charts = sheet.getCharts(); | |
// Add a Column chart to the Chart Worksheet | |
int chartSheetIdx = charts.add(ChartType.COLUMN, 5, 0, 25, 15); | |
// Get the newly added Chart | |
Chart chart = book.getWorksheets().get(2).getCharts().get(0); | |
// Set the background/foreground color for PlotArea/ChartArea | |
chart.getPlotArea().getArea().setBackgroundColor(Color.getWhite()); | |
chart.getChartArea().getArea().setBackgroundColor(Color.getWhite()); | |
chart.getPlotArea().getArea().setForegroundColor(Color.getWhite()); | |
chart.getChartArea().getArea().setForegroundColor(Color.getWhite()); | |
// Hide the Legend | |
chart.setShowLegend(false); | |
// Add Data Series for the Chart | |
chart.getNSeries().add("DataSheet!B1:B3", true); | |
// Specify the Category Data | |
chart.getNSeries().setCategoryData("DataSheet!A1:A3"); | |
// Get the Data Series | |
Series ser = chart.getNSeries().get(0); | |
// Apply the 3D formatting | |
ShapePropertyCollection spPr = ser.getShapeProperties(); | |
Format3D fmt3d = spPr.getFormat3D(); | |
// Specify Bevel with its height/width | |
Bevel bevel = fmt3d.getTopBevel(); | |
bevel.setType(BevelPresetType.CIRCLE); | |
bevel.setHeight(5); | |
bevel.setWidth(9); | |
// Specify Surface material type | |
fmt3d.setSurfaceMaterialType(PresetMaterialType.WARM_MATTE); | |
// Specify surface lighting type | |
fmt3d.setSurfaceLightingType(LightRigType.THREE_POINT); | |
// Specify lighting angle | |
fmt3d.setLightingAngle(20); | |
// Specify Series background/foreground and line color | |
ser.getArea().setBackgroundColor(Color.getMaroon()); | |
ser.getArea().setForegroundColor(Color.getMaroon()); | |
ser.getBorder().setColor(Color.getMaroon()); | |
// Save the Excel file | |
book.save(dataDir + "A3DFormat_out.xls"); | |
// Print message | |
System.out.println("3D format is applied successfully."); |