jeecg导出excel设置样式XLS(03)与XLSX(07)

jeecg版本依赖

 <modelVersion>4.0.0</modelVersion>
  <groupId>org.jeecgframework.boot</groupId>
  <artifactId>jeecg-boot-parent</artifactId>
  <version>2.4.6</version>
  <packaging>pom</packaging>


报错信息:

java.lang.IllegalArgumentException: Invalid column index (256).  Allowable column range for BIFF8 is (0..255) or ('A'..'IV')

由于03对行数(65535)和列数(255)有限制,所以当数据超出范围后难免出错

解决方法:改用new ExportParams()生成Excel07的文档

jeecg导出excel设置样式

 今天工作中遇到个问题,在使用jeecg框架的时候使用自动生成代码导出excel文档报错

 /**
   * 导出excel
   *
   * @param request
   */
  protected ModelAndView exportXls(HttpServletRequest request, T object, Class<T> clazz, String title) {
    // Step.1 组装查询条件
    QueryWrapper<T> queryWrapper = QueryGenerator.initQueryWrapper(object, request.getParameterMap());
    LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();

    // Step.2 获取导出数据
    List<T> pageList = service.list(queryWrapper);
    List<T> exportList = null;

    // 过滤选中数据
    String selections = request.getParameter("selections");
    if (oConvertUtils.isNotEmpty(selections)) {
      List<String> selectionList = Arrays.asList(selections.split(","));
      exportList = pageList.stream().filter(item -> selectionList.contains(getId(item))).collect(Collectors.toList());
    } else {
      exportList = pageList;
    }

    // Step.3 AutoPoi 导出Excel
    ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
    mv.addObject(NormalExcelConstants.FILE_NAME, title); //此处设置的filename无效 ,前端会重更新设置一下
    mv.addObject(NormalExcelConstants.CLASS, clazz);
    //update-begin--Author:liusq  Date:20210126 for:图片导出报错,ImageBasePath未设置--------------------
    ExportParams exportParams = new ExportParams(title + "报表", "导出人:" + sysUser.getRealname(), title);
    exportParams.setImageBasePath(upLoadPath);
    //update-end--Author:liusq  Date:20210126 for:图片导出报错,ImageBasePath未设置----------------------
    mv.addObject(NormalExcelConstants.PARAMS, exportParams);
    mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
    return mv;
  }

通过DEBUG调试跟踪
 

new ExportParams()创建时对象的时候给了一个默认值;
private ExcelType type = ExcelType.HSSF;
我们只需要创建玩对象更改他的默认值就可以修改了;
ExcelType 是一个枚举类,里面有两个参数;
就可以解决此错误
public enum ExcelType {

   HSSF, XSSF;

}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值