专业财税服务推荐

精选优质财税服务,为企业提供专业、可靠的财税解决方案,助力企业健康发展

零报税代理记账
零申报代理记账
报税做账算帐财务报表老会计做账
代理记账
咨询微信:lhy_happyday
工商营业执照年度年报年检公示
全国个体、企业、公司、合作社工商年审年报服务!
个体/10元/次 企业/20元/次
咨询微信:lhy_happyday
财税咨询服务
一对一专业财税咨询,解决企业财税难题,提供定制方案
咨询微信:lhy_happyday
财务分析服务
小规模个体报税0申报税务年报工商年报月报季报报税代理记账
咨询微信:lhy_happyday
立即咨询专业财税顾问
微信号: lhy_happyday
会计从业9年,管理多家个体工商、小规模、一般纳税人等企业的财务、税务等相关工作!。
扫码或搜索添加微信,备注"财税咨询"获取专属优惠
知方号 知方号

关于easypoi2.3.0.1多个sheet模板导出数据报NullPointException的问题 easypoi导出多个sheet 数据为空

关于easypoi2.3.0.1多个sheet模板导出数据报NullPointException的问题

直接说问题

在使用easypoi2.3.0.1 导出个多sheet页的excel 时候 会调用ExcelExportOfTemplateUtil 这个类中的createExcleByTemplate(TemplateExportParams params, Map map)方法,在掉用此方法的时候会报空指针异常,

追踪代码 发现空指针 是因为

 private CellStyle getStyles(boolean isSingle, ExcelForEachParams excelForEachParams) {         return excelExportStyler.getTemplateStyles(isSingle, excelForEachParams);     }

这个里面的excelExportStyler 为空导致的

再查看代码 发现

 createExcleByTemplate(TemplateExportParams params, Map map) { }里面没有对excelExportStyler(表格样式)进行创建,所以导致了这个问题

解决办法:

修改createExcleByTemplate 方法。ok  解决(这个是easypoi 源码里面的bug,需要重新编译jar包)

  public Workbook createExcleByTemplate(TemplateExportParams params,                                           Map map) {         // step 1. 判断模板的地址         if (params == null || map == null || StringUtils.isEmpty(params.getTemplateUrl())) {             throw new ExcelExportException(ExcelExportEnum.PARAMETER_ERROR);         }         Workbook wb = null;         // step 2. 判断模板的Excel类型,解析模板         try {             this.teplateParams = params;             wb = getCloneWorkBook();              // 创建表格样式(加上这个就ok)             setExcelExportStyler((IExcelExportStyler) teplateParams.getStyle()                 .getConstructor(Workbook.class).newInstance(wb));             // step 3. 解析模板             for (int i = 0, le = params.isScanAllsheet() ? wb.getNumberOfSheets()                 : params.getSheetNum().length; i < le; i++) {                 if (params.getSheetName() != null && params.getSheetName().length > i                     && StringUtils.isNotEmpty(params.getSheetName()[i])) {                     wb.setSheetName(i, params.getSheetName()[i]);                 }                 tempCreateCellSet.clear();                 parseTemplate(wb.getSheetAt(i), map.get(i));             }         } catch (Exception e) {             LOGGER.error(e.getMessage(), e);             return null;         }         return wb;     }

已经编译好的包:https://download.csdn.net/download/u011056339/11218296

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。