java使用poi操作world生成饼图,柱状图,折线图,组合图:二

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
摘要由CSDN通过智能技术生成

*/

private String sheetName;

/**

  • 图表

*/

private XWPFChart xwpfChart;

/**

  • 具体图

*/

private List xmlObjectList = new ArrayList<>();

/**

  • 绘制区域图

*/

private CTChart ctChart;

/**

  • 标题

*/

private List titleList;

/**

  • 数据源对应的key

*/

private List numberList;

/**

  • 填充的数据源

*/

private List<Map<String, String>> sourceModelList;

/**

  • 目标数据

*/

private List chartsEnumList;

/**

  • 赋值 替换目标

  • @param numberList

*/

public void setNumberList(List numberList){

this.numberList = numberList;

}

/**

  • 赋值 数据源

  • @param sourceModelList

*/

public void setSourceModelList(List<Map<String, String>> sourceModelList){

this.sourceModelList = sourceModelList;

}

/**

  • 赋值 标题

  • @param titleList

*/

public void setTitleList(List titleList){

this.titleList = titleList;

}

/**

  • 单个赋值 图表

  • @param charts 所有可绘制区域

  • @param chartSeat 要操作的图表中可绘制区域位置

  • @param xmlObjSeat 图表在可绘制区域中的位置

  • @param chartsEnum 目标的表格类型

*/

public void setSingleChart(List charts,int chartSeat,int xmlObjSeat,ChartsEnum chartsEnum){

List chartsEnumList = Arrays.asList(chartsEnum);

/**

  • 封装基础数据

*/

this.packageBasic(charts, chartSeat,chartsEnumList);

/**

  • 获得目标图表

*/

XmlObject targetChart = chartsEnum.getTargetChart(chartSeat, this.ctChart, xmlObjSeat);

this.xmlObjectList = Arrays.asList(targetChart);

//当前是单元素

this.isSingle = true;

}

/**

  • 组合赋值 图表

  • @param charts 所有可绘制区域

  • @param chartSeat 要操作的图表中可绘制区域位置

  • @param xmlObjSeat 图表在可绘制区域中的位置

  • @param chartsEnumList 目标的表格类型

*/

public void setComBiChart(List charts,int chartSeat,int xmlObjSeat,List chartsEnumList){

/**

  • 封装基础数据

*/

this.packageBasic(charts, chartSeat,chartsEnumList);

/**

  • 获得目标图表

*/

this.xmlObjectList.clear();

chartsEnumList.stream().forEach(x->{

XmlObject targetChart = x.getTargetChart(chartSeat,this.ctChart, xmlObjSeat);

this.xmlObjectList.add(targetChart);

});

//当前不是单元素

this.isSingle = false;

}

/**

  • 封装部分基础数据

  • @param charts

  • @param chartSeat

  • @param chartsEnumList

*/

private void packageBasic(List charts, int chartSeat,List chartsEnumList) {

if(CollectionUtils.isEmpty(charts)){

throw new RuntimeException(“模板中图表元素为null; !!!ctChart:null”);

}

if(CollectionUtils.isEmpty(chartsEnumList)){

throw new RuntimeException(“图表目标为null;!!!chartsEnum:null”);

}

/**

  • 目标

*/

this.chartsEnumList = chartsEnumList;

/**

  • 第N个位置图表

*/

this.xwpfChart = charts.get(chartSeat);

/**

  • 第N个位置可绘制区域的图表

*/

this.ctChart = this.xwpfChart.getCTChart();

}

/**

  • 执行模板数据源填充

  • @param sheetName 展示数据excel页名字

*/

public void executeFillModel(String sheetName) throws IOException, InvalidFormatException {

this.sheetName = sheetName;

//异常校验

String s = this.isSingle ? this.abnormalCheckSingle() : this.abnormalCheckComBi();

//执行填充数据

ChartsEnum.refreshExcel(this);

for (int i = 0; i < chartsEnumList.size(); i++) {

ChartsEnum chartsEnum = chartsEnumList.get(i);

chartsEnum.fillModel(this,this.getXmlObjectList().get(i),i);

}

}

/**

  • 异常校验

*/

private String abnormalCheckSingle() {

if(CollectionUtils.isEmpty(this.numberList)){

throw new RuntimeException(“数据源比对为null; !!!numberList:null”);

}

if(CollectionUtils.isEmpty(this.titleList)){

throw new RuntimeException(“标题为null; !!!titleList:null”);

}

if(CollectionUtils.isEmpty(this.sourceModelList)){

throw new RuntimeException

  • 23
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值