easyexcel导出遇到的两个坑
问题一:poi的jar版本过低问题
使用easyexcel大数据量导出时,需要依赖org.apache.poi的3.17版的jar包,而poi3.17与3.8/3.9版本之间方法变动比较大,会导致easyexcel不能正常使用。所以需要确保poi为3.17版本的
<dependency> <groupId>com.xxx</groupId> <artifactId>xxx-framework</artifactId> <version>1.0.5</version> <exclusions> <exclusion> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> </exclusion> <exclusion> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> </exclusion> <exclusion> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> </exclusion> </exclusions> </dependency>
排除掉3.9版本的poi之后正常:
问题二:导出结束后报:java.io.IOException: Stream closed
在使用springboot构建项目时,使用zipkin进行链路跟踪,springboot内部容器可能使用的是undertow,因此导致此错误。
将容器undertow排除:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>io.zipkin.java</groupId> <artifactId>zipkin-server</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-undertow</artifactId> </exclusion> </exclusions> </dependency>