本文将介绍如何使用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);
}
}