大家肯定都知道 easypoi 但是不知道有没有用过,我也是第一次用,常规导出确实非常简单 在字段上 加注解
@Excel(name = "序号",isColumnHidden=true,orderNum="0",fixedIndex = 0 ) 进行排序就可以
1、但是有需要整理表头的时候就很难受了 百度了一圈可以增加 groupName 属性 但是就是不生效,无法出现表头百度了一圈也没有找到问题关键,突然看到在3.0.1的时候新增了groupName属性赶紧把pom生版本,属实生效 所以在用easypoi的时候有些问题找不到答案试着区升级
2、接下来用到了排序 orderNum 跟 fixedIndex 这两个属性都是指定列,但是还是会有时候不生效串列,还是百度了一圈没有解决,然后试着再次升级,这次升级到3.1.0 确实不负众望完美解决,上边遇到的两个坑都是跟版本有关系,按理讲,低版本不应该看到高版本的字段但是确实能看到很难受
3、遇到的第三个问题就是合并excel值得单元格 他的属性注解有 needMerge = true (官方说法 是否需要纵向合并单元格(用于含有list中,单个的单元格,合并list创建的多个row ) 也就是你在对象里边可以创建别的List<>对象 加上这个属性就可以自动合并单元格,需要在List<>对象上增加@ExcelCollection 这个注解 常规情况下就可以正常导出,但是 这里说的是但是 导出得时候还会报错 object is not an instance of declaring class easypoi 这个错 找不到对应得类 排查了一大圈 Debug跟踪了一圈最后终于发现 因为我查询出来的是一个对象,然后我直接强转了这个对象 外边的这层对象强转过来了,但是里边包含的List<>对象没有强转过来 也需要转换成你想要的对象 这样就完美解决
总结:很少用easypoi 刚用的时候确实挺坑而且百度不到你想要的答案,只能自己去摸索,但是用起来你会发现真的挺简单的很舒服 可以在easypoi 官方文档库去查询 写的不是很详细