本文将介绍如何使用Spire.XLS for Java创建含多层分类标签 Excel图表。
import com.spire.xls.*;
import com.spire.xls.charts.*;
public class CreateMultiLevelChart {
public static void main(String []args) throws Exception {
//创建Workbook实例,获取第一个工作表
Workbook wb = new Workbook();
Worksheet sheet = wb.getWorksheets().get(0);
//写入数据到工作表
sheet.getCellRange("A1").setText("年份");
sheet.getCellRange("A2").setText("2016年");
sheet.getCellRange("A6").setText("2017年");
sheet.getCellRange("B1").setText("季度");
sheet.getCellRange("B2").setText("第一季度");
sheet.getCellRange("B3").setText("第二季度");
sheet.getCellRange("B4").setText("第三季度");
sheet.getCellRange("B5").setText("第四季度");
sheet.getCellRange("B6").setText("第一季度");
sheet.getCellRange("B7").setText("第二季度");
sheet.getCellRange("B8").setText("第三季度");
sheet.getCellRange("B9").setText("第四季度");
sheet.getCellRange("C1").setText("季度销量");
sheet.getCellRange("C2").setValue("1544");
sheet.getCellRange("C3").setValue("1102");
sheet.getCellRange("C4").setValue("2558");
sheet.getCellRange("C5").setValue("1609");
sheet.getCellRange("C6").setValue("1700");
sheet.getCellRange("C7").setValue("1304");
sheet.getCellRange("C8").setValue("1572");
sheet.getCellRange("C9").setValue("3210");
//纵向合并单元格A2到A5、A6到A9
sheet.getCellRange("A2:A5").merge();
sheet.getCellRange("A6:A9").merge();
//添加柱状图
Chart chart = sheet.getCharts().add(ExcelChartType.ColumnClustered);
chart.setChartTitle("季度销量"); //设置图标标题
chart.getPlotArea().getFill().setFillType(ShapeFillType.NoFill); //不填充绘图区域(默认填充灰色)
chart.getLegend().delete(); //删除图例
//设置柱状图位置及宽度
chart.setLeftColumn(5);
chart.setTopRow(1);
chart.setRightColumn(14);
//设置系列数据来源
chart.setDataRange(sheet.getCellRange("C2:C9"));
chart.setSeriesDataFromRange(false);
//设置系列分类标签数据来源
ChartSerie serie = chart.getSeries().get(0);
serie.setCategoryLabels(sheet.getCellRange("A2:B9"));
//显示多层分类标签
chart.getPrimaryCategoryAxis().setMultiLevelLable(true);
//保存文档
wb.saveToFile("output.xlsx", ExcelVersion.Version2013);
}
}