知方号

知方号

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

关于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举报,一经查实,本站将立刻删除。