在使用poi-tl导出word文档时发现和easyexcel依赖冲突

  • 修改前maven依赖如下

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>3.3.2</version>
</dependency>
<dependency>
    <groupId>com.deepoove</groupId>
    <artifactId>poi-tl</artifactId>
    <version>1.12.1</version>
</dependency>
  • 抛出的异常信息

Caused by: java.lang.NoSuchMethodError: 'byte[] org.apache.poi.util.IOUtils.toByteArray(java.io.InputStream, int, int)'
	at org.apache.poi.openxml4j.util.ZipArchiveFakeEntry.<init>(ZipArchiveFakeEntry.java:82) ~[poi-ooxml-5.2.2.jar:5.2.2]
	at org.apache.poi.openxml4j.util.ZipInputStreamZipEntrySource.<init>(ZipInputStreamZipEntrySource.java:98) ~[poi-ooxml-5.2.2.jar:5.2.2]
	at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:132) ~[poi-ooxml-5.2.2.jar:5.2.2]
	at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:312) ~[poi-ooxml-5.2.2.jar:5.2.2]
	at org.apache.poi.ooxml.util.PackageHelper.open(PackageHelper.java:59) ~[poi-ooxml-5.2.2.jar:5.2.2]
	at org.apache.poi.ooxml.util.PackageHelper.open(PackageHelper.java:47) ~[poi-ooxml-5.2.2.jar:5.2.2]
	at org.apache.poi.xwpf.usermodel.XWPFDocument.<init>(XWPFDocument.java:156) ~[poi-ooxml-5.2.2.jar:5.2.2]
	at com.deepoove.poi.xwpf.NiceXWPFDocument.<init>(NiceXWPFDocument.java:100) ~[poi-tl-1.12.1.jar:na]
	at com.deepoove.poi.xwpf.NiceXWPFDocument.<init>(NiceXWPFDocument.java:96) ~[poi-tl-1.12.1.jar:na]
	at com.deepoove.poi.XWPFTemplate.compile(XWPFTemplate.java:164) ~[poi-tl-1.12.1.jar:na]
	at com.deepoove.poi.XWPFTemplate.compile(XWPFTemplate.java:132) ~[poi-tl-1.12.1.jar:na]
	at com.deepoove.poi.XWPFTemplate.compile(XWPFTemplate.java:89) ~[poi-tl-1.12.1.jar:na]
	at com.deepoove.poi.XWPFTemplate.compile(XWPFTemplate.java:79) ~[poi-tl-1.12.1.jar:na]

经过排查后发现easyexcel中有包的版本比较低导致冲突,解决方案如下

  • easyexcel排除poi-ooxml和poi-ooxml-schemas

  • 修改后maven配置如下

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>3.3.2</version>
    <exclusions>
        <exclusion>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>com.deepoove</groupId>
    <artifactId>poi-tl</artifactId>
    <version>1.12.1</version>
</dependency>

文章作者: 陆壹
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 陆壹笔记
Java springboot java excel maven
喜欢就支持一下吧