- Demo
- Java
- C# source
This demo shows you how to create chart in an excel workbook.
import com.spire.xls.*;
public class ChartDemo {
public void chartDemo(String excelFile, ExcelChartType chartType, String resultFileName){
Workbook workbook = new Workbook();
workbook.loadFromFile(excelFile);
Worksheet worksheet = workbook.getWorksheets().get(0);
setChart(worksheet,chartType);
sheetStyle(workbook,worksheet);
workbook.saveToFile(resultFileName+".xlsx",FileFormat.Version2013);
}
private void setChart(Worksheet sheet, ExcelChartType chartType){
sheet.setName("Chart data");
sheet.setGridLinesVisible(false);
//Add a new chart worsheet to workbook
Chart chart = sheet.getCharts().add();
chart.setChartType(chartType);
//Set region of chart data
chart.setDataRange(sheet.getCellRange("A1:C7"));
chart.setSeriesDataFromRange(false);
//Set position of chart
chart.setLeftColumn(4);
chart.setTopRow(2);
chart.setRightColumn(12);
chart.setBottomRow(22);
//Chart title
chart.setChartTitle("Sales market by country");
chart.getChartTitleArea().isBold(true);
chart.getChartTitleArea().setSize(12);
chart.getPrimarySerieAxis().setTitle("Country");
chart.getPrimarySerieAxis().getFont().isBold(true);
chart.getPrimarySerieAxis().getTitleArea().isBold(true);
chart.getPrimarySerieAxis().setTitle("Sales(in Dollars)");
chart.getPrimarySerieAxis().hasMajorGridLines(false);
chart.getPrimarySerieAxis().getTitleArea().setTextRotationAngle(90);
chart.getPrimarySerieAxis().setMinValue(1000);
chart.getPrimarySerieAxis().getTitleArea().isBold(true);
chart.getPlotArea().getFill().setFillType(ShapeFillType.SolidColor);
chart.getPlotArea().getFill().setForeKnownColor(ExcelColors.White);
for (int i = 0; i < chart.getSeries().getCount(); i++){
chart.getSeries().get(i).getFormat().getOptions().isVaryColor(true);
chart.getSeries().get(i).getDataPoints().getDefaultDataPoint().getDataLabels().hasValue(true);
}
chart.getLegend().setPosition(LegendPositionType.Top);
}
public static void sheetStyle(Workbook workbook, Worksheet sheet){
CellStyle oddStyle = workbook.getStyles().addStyle("oddStyle");
oddStyle.getBorders().getByBordersLineType(BordersLineType.EdgeLeft).setLineStyle(LineStyleType.Thin);
oddStyle.getBorders().getByBordersLineType(BordersLineType.EdgeTop).setLineStyle(LineStyleType.Thin);
oddStyle.getBorders().getByBordersLineType(BordersLineType.EdgeBottom).setLineStyle(LineStyleType.Thin);
oddStyle.setKnownColor(ExcelColors.LightGreen1);
CellStyle evenStyle = workbook.getStyles().addStyle("evenStyle");
evenStyle.getBorders().getByBordersLineType(BordersLineType.EdgeLeft).setLineStyle(LineStyleType.Thin);
evenStyle.getBorders().getByBordersLineType(BordersLineType.EdgeRight).setLineStyle(LineStyleType.Thin);
evenStyle.getBorders().getByBordersLineType(BordersLineType.EdgeTop).setLineStyle(LineStyleType.Thin);
evenStyle.getBorders().getByBordersLineType(BordersLineType.EdgeBottom).setLineStyle(LineStyleType.Thin);
evenStyle.setKnownColor(ExcelColors.LightTurquoise);
for (int i = 0; i < sheet.getAllocatedRange().getRows().length; i++) {
CellRange[] ranges = sheet.getAllocatedRange().getRows();
if (ranges[i].getRow() != 0){
if (ranges[i].getRow() % 2 == 0)
{
ranges[i].setCellStyleName(evenStyle.getName());
}
else
{
ranges[i].setCellStyleName(oddStyle.getName());
}
}
}
//Sets header style
CellStyle styleHeader = workbook.getStyles().addStyle("headerStyle");
styleHeader.getBorders().getByBordersLineType(BordersLineType.EdgeLeft).setLineStyle(LineStyleType.Thin);
styleHeader.getBorders().getByBordersLineType(BordersLineType.EdgeRight).setLineStyle(LineStyleType.Thin);
styleHeader.getBorders().getByBordersLineType(BordersLineType.EdgeTop).setLineStyle(LineStyleType.Thin);
styleHeader.getBorders().getByBordersLineType(BordersLineType.EdgeBottom).setLineStyle(LineStyleType.Thin);
styleHeader.setVerticalAlignment(VerticalAlignType.Center);
styleHeader.setKnownColor(ExcelColors.Green);
styleHeader.getFont().setKnownColor(ExcelColors.White);
styleHeader.getFont().isBold(true);
styleHeader.setHorizontalAlignment(HorizontalAlignType.Center);
for (int i = 0; i < sheet.getRows()[0].getCount(); i++) {
CellRange range = sheet.getRows()[0];
range.setCellStyleName(styleHeader.getName());
}
sheet.getColumns()[sheet.getAllocatedRange().getLastColumn() -1].getStyle().setNumberFormat("\"$\"#,##0");
sheet.getColumns()[sheet.getAllocatedRange().getLastColumn() -2].getStyle().setNumberFormat("\"$\"#,##0");
sheet.getRows()[0].getStyle().setNumberFormat("General");
sheet.getAllocatedRange().autoFitColumns();
sheet.getAllocatedRange().autoFitRows();
sheet.getRows()[0].setRowHeight(20);
}
}
No Matter How Big or Small Your Project is,
Any technical question related to our product, contact us at support@e-iceblue.com.
Any question related to the purchase of product, contact us at sales@e-iceblue.com.
If you don't find the function you want, please request a free demo from us.
