Diagramformatering
Ställa in diagramens utseende
I Diagramtyper, gav vi en kort introduktion till diagramtyperna och diagramobjekt som erbjuds av Aspose.Cells.
I den här artikeln diskuterar vi hur man anpassar utseendet på diagrammen genom att ställa in ett antal olika egenskaper:
- Ställa in diagramområdet.
- Inställning av diagramlinjer.
- Tillämpning av teman.
- Inställning av titlar för diagram och axlar.
- Arbete med rutnät.
- Inställning av gränser för bak- och sidoväggar.
Inställning av diagramområde
Det finns olika typer av områden i ett diagram och Aspose.Cells tillhandahåller flexibiliteten att modifiera utseendet på varje område. Utvecklare kan tillämpa olika formateringsinställningar på ett område genom att ändra dess förgrundsfärg, bakgrundsfärg och fyllnad etc.
I det givna exemplet har vi tillämpat olika formateringsinställningar på olika typer av områden i ett diagram. Dessa områden inkluderar:
- Plotområde
- Diagramområde
- SeriesCollection område
- Området hos en enda punkt i en SeriesCollection
Efter att exempelkoden har exekverats kommer en kolumnutskrift att läggas till arbetsbladet enligt nedan:
En kolumnutskrift med fyllda områden
// 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."); |
Inställning av diagramlinjer
Utvecklare kan också tillämpa olika typer av stilar på linjerna eller datamarkörerna för SeriesCollection enligt exemplet nedan. Genom att exekvera exempelkoden läggs en kolumnutskrift till arbetsbladet enligt nedan:
Kolumnutskrift efter tillämpning av linjestilar
// 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."); |
Tillämpning av Microsoft Excel 2007/2010 teman på diagram
Utvecklare kan tillämpa olika Microsoft Excel-teman och färger på SeriesCollection eller andra diagramobjekt enligt exemplet nedan.
// 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"); |
Inställning av diagram- eller axeltitlar
Du kan använda Microsoft Excel för att ställa in titlarna på ett diagram och dess axlar i en WYSIWYG-miljö enligt nedan.
Inställning av titlar för ett diagram & dess axlar med hjälp av Microsoft Excel
Aspose.Cells tillåter också utvecklare att ställa in titlarna på ett diagram och dess axlar vid körning. Alla diagram och deras axlar innehåller en Title.setText-metod som kan användas för att ställa in deras titlar enligt exemplet nedan. Efter att exempelkoden har exekverats kommer en kolumnutskrift att läggas till arbetsbladet enligt nedan:
Kolumnutskrift efter inställning av titlar
// 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."); |
Inställning av stora rutnät
Dölja stora rutnät
Utvecklare kan kontrollera synligheten för stora rutnät genom att använda setVisible-metoden för Line-objektet. Efter att ha dolt de stora rutnäten kommer en kolumnutskrift som lagts till arbetsbladet att se ut enligt följande:
En kolumnutskrift med dolda stora rutnät
// 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); |
Ändra inställningar för stora rutnät
Utvecklare kan inte bara kontrollera synligheten för stora rutnät utan också andra egenskaper inklusive dess färg etc. Efter att ha ställt in färgen på stora rutnät kommer en kolumnutskrift som lades till arbetsbladet att se ut enligt nedan:
Kolumnutskrift med färgade stora rutnät
// 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()); |
Inställning av ramar för bak- och sidoväggar
Sedan utgivningen av Microsoft Excel 2007 har väggarna i en 3D-diagram delats in i två delar: sidovägg och bakvägg, så vi måste använda två Walls objekt för att representera dem separat och du kan komma åt dem genom att använda Chart.getBackWall() och Chart.getSideWall().
Exemplet nedan visar hur man ställer in sidoväggens kant genom att använda olika attribut.
// 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()); |
Ändra diagrammets position och storlek
Ibland vill du ändra positionen eller storleken på det nya eller befintliga diagrammet i arbetsbladet. Aspose.Cells tillhandahåller Chart.getChartObject()-egenskapen för att uppnå detta. Du kan använda dess underegenskaper för att ändra diagrammet med ny höjd och bredd eller ompositionera det med nya X och Y-koordinater.
Ändra diagrammets position och storlek
För att ändra diagrammets position (X, Y-koordinater) och storlek (höjd, bredd), använd dessa egenskaper:
- Chart.getChartObject().get/setWidth()
- Chart.getChartObject().get/setHeight()
- Chart.getChartObject().get/setX()
- Chart.getChartObject().get/setY()
Följande exempel förklarar användningen av ovanstående egenskaper. Det laddar den befintliga arbetsboken som innehåller ett diagram i dess första arbetsblad. Sedan ändrar det storlek och position på diagrammet och sparar arbetsboken.
Innan körning av provkoden ser källfilen ut så här:
Diagramstorlek och position före körning av provkoden
Efter körning ser utdatafilen ut så här:
Diagramstorlek och position efter körning av provkoden
// 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."); |
Manipulering av Designerdiagram
Det finns stunder när du kanske behöver manipulera eller ändra diagrammen i dina designer mallfiler. Aspose.Cells stöder fullständigt att manipulera designerdiagram med dess innehåll och element. Data, diagraminnehåll, bakgrundsbild och formatering kan bevaras med precision.
Manipulera designerdiagram i mallfilerna
För att manipulera designerdiagram i en mallfil, använd alla diagramrelaterade API-anrop. Använd till exempel Worksheet.getCharts-egenskapen för att hämta den befintliga diagramssamlingen i mallfilen.
Skapa ett diagram
Följande exempel visar hur man skapar ett cirkeldiagram. Vi kommer att manipulera detta diagram senare. Följande utdata genereras av koden.
Det inmatade cirkeldiagrammet
// 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."); |
Manipulera diagrammet
Följande exempel visar hur man manipulerar det befintliga diagrammet. I det här exemplet modifierar vi diagrammet som skapades ovan. Följande utdata genereras av koden. Observera att färgen på diagramtiteln har ändrats från blå till svart, och ‘England 30000’ har ändrats till ‘United Kingdom, 30K’.
Cirkeldiagrammet har ändrats
// 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."); |
Manipulera ett linjediagram i designmallen
I det här exemplet kommer vi att manipulera ett linjediagram. Vi kommer att lägga till några data-serier i det befintliga diagrammet och ändra deras linjefärger.
Först, ta en titt på designlinjediagrammet.
Det inmatade linjediagrammet
Nu manipulerar vi linjediagrammet (som finns i filen linechart.xls) med följande kod. Följande utdata genereras av koden.
Det manipulerade linjediagrammet
// 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."); |
Användning av sparklines
Microsoft Excel 2010 kan analysera information på fler sätt än någonsin tidigare. Det låter användarna spåra och markera viktiga datatrender med nya verktyg för dataanalys och visualisering. Sparklines är minidiagram som du kan placera i celler så att du kan se data och diagram på samma tabell. När sparklines används på rätt sätt blir dataanalys snabbare och mer fokuserad. De ger också en enkel vy av information och undviker överfyllda arbetsblad med många upptagna diagram.
Aspose.Cells erbjuder en API för att manipulera sparklines i kalkylblad.
Sparklines i Microsoft Excel
För att infoga sparklines i Microsoft Excel 2010:
- Välj cellerna där du vill att sparklines ska visas. För att göra dem enkla att visa, välj celler bredvid datan.
- Klicka på Infoga på menyn och välj sedan kolumn i Sparklines gruppen.
- Välj eller ange området med celler i arbetsbladet som innehåller källdatan. Diagrammen visas.
Sparklines hjälper dig att se trender, till exempel, eller vinst- eller förlustrekord för en softbolliga. Sparklines kan till och med summera hela säsongen för varje lag i ligan.
Sparklines med användning av Aspose.Cells
Utvecklare kan skapa, ta bort eller läsa sparklines (i mallfilen) med hjälp av API:et som tillhandahålls av Aspose.Cells. Genom att lägga till anpassade grafik för en given dataserie har utvecklare friheten att lägga till olika typer av små diagram i valda cellområden.
Exemplet nedan demonstrerar funktionen Sparklines. Exemplet visar hur man:
- Öppna en enkel mallfil.
- Läs sparklinesinformation för ett arbetsblad.
- Lägg till nya gnistrande linjer för ett givet datintervall till ett cellområde.
- Sparar Excel-filen på disken.
// 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."); |
Tillämpa 3D-format på diagram
Du kan behöva 3D-diagramstilar så att du kan få just resultat för ditt scenario. Aspose.Cells API:er tillhandahåller relevant API för att tillämpa Microsoft Excel 2007 3D-formatering som demonstreras i den här artikeln.
Ange 3D-format på diagram
Ett komplett exempel ges nedan för att demonstrera hur man skapar ett diagram och tillämpar Microsoft Excel 2007 3D-formatering. Efter att ovanstående exempelkod har utförts kommer ett kolumn diagram (med 3D-effekter) att läggas till i arbetsbladet som visas nedan.
Ett kolumn diagram med 3D-formatering
// 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."); |