为了账号安全,请及时绑定邮箱和手机立即绑定

Java创建含多层分类标签的Excel图表

标签:
Java

通过图表能更直观的体现数据的变化趋势。在图表中一个数据可体现在多个数据分类标签下,常见的生成的图表默认含有一种分类标签,如果需要设置多层分类标签则可以参考以下Java代码示例方法。

使用工具:Free Spire.XLS for Java (免费版)

Jar获取及导入:通过官网下载jar包,并解压将lib文件夹下的Spire.Xls.jar文件导入java程序;或者通过Maven仓库下载导入


Java代码示例

 import com.spire.xls.*;
 import com.spire.xls.charts.ChartSerie;
 
 import java.awt.*;
 
 public class MultiLevelCategoryLabels {
     public static void main(String[] args){
         //创建Workbook实例,获取工作表
         Workbook wb = new Workbook();
         Worksheet sheet = wb.getWorksheets().get(0);
 
         //写入数据到工作表
         sheet.getCellRange("A2").setText("出口前");
         sheet.getCellRange("A5").setText("出口后");
         sheet.get("B1").setText("年份");
         sheet.getCellRange("B2").setText("2017年");
         sheet.getCellRange("B6").setText("2018年");
         sheet.getCellRange("C1").setText("季度");
         sheet.getCellRange("C2").setText("1季度");
         sheet.getCellRange("C3").setText("2季度");
         sheet.getCellRange("C4").setText("3季度");
         sheet.getCellRange("C5").setText("4季度");
         sheet.getCellRange("C6").setText("1季度");
         sheet.getCellRange("C7").setText("2季度");
         sheet.getCellRange("C8").setText("3季度)");
         sheet.getCellRange("C9").setText("4季度");
         sheet.getCellRange("D1").setText("季度产量\n(万吨)");
         sheet.getCellRange("D2").setValue("1.56");
         sheet.getCellRange("D3").setValue("2.3");
         sheet.getCellRange("D4").setValue("3.21");
         sheet.getCellRange("D5").setValue("3.5");
         sheet.getCellRange("D6").setValue("4.8");
         sheet.getCellRange("D7").setValue("5.2");
         sheet.getCellRange("D8").setValue("5.79");
         sheet.getCellRange("D9").setValue("5.58");
 
         //合并单元格,设置单元格对齐方式
         sheet.getCellRange("A2:A4").merge();
         sheet.getCellRange("A5:A9").merge();
         sheet.getCellRange("B2:B5").merge();
         sheet.getCellRange("B6:B9").merge();
         sheet.getCellRange("A1:D9").getStyle().setHorizontalAlignment(HorizontalAlignType.Center);
         sheet.getCellRange("A1:D9").getStyle().setVerticalAlignment(VerticalAlignType.Center);
 
         //添加柱状图表
         Chart chart = sheet.getCharts().add(ExcelChartType.LineMarkers);
         chart.setChartTitle("季度产量(万吨)");//设置图表标题
         chart.getPlotArea().getFill().setFillType(ShapeFillType.NoFill); //不填充绘图区域(默认填充灰色)
         chart.getLegend().delete();//删除图例
 
         //指定柱状图表在工作表中的位置及宽度
         chart.setLeftColumn(5);
         chart.setTopRow(1);
         chart.setRightColumn(14);
 
         //设置图表系列数据来源
         chart.setDataRange(sheet.getCellRange("D2:D9"));
         chart.setSeriesDataFromRange(false);
         chart.getSeries().get(0).getDataPoints().getDefaultDataPoint().getDataLabels().hasValue();
         chart.getSeries().get(0).getFormat().getLineProperties().setColor(new Color(123,104,238));
 
         //设置系列分类标签数据来源
         ChartSerie serie = chart.getSeries().get(0);
         serie.setCategoryLabels(sheet.getCellRange("A2:C9"));
 
 
         //显示多层分类标签
         chart.getPrimaryCategoryAxis().setMultiLevelLable(true);
 
         //保存文档
         wb.saveToFile("output.xlsx", ExcelVersion.Version2013);
         wb.dispose();
     }
 }

图表创建结果:

https://img1.sycdn.imooc.com//5e742b560001547f10260589.jpg

(本文完)

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
9
获赞与收藏
48

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消