【Word Excel模版引擎】


  宋 陆游
死去元知万事空,

但悲不见九州同。

王师北定中原日,

家祭无忘告乃翁。

背景

Word模板引擎

poi-tl官方网站
该工具提供了详细的教程,几乎涵盖了所有会遇到的模板引擎的情况,我在实际的使用过程中遇到了一些具体的问题,通过给作者少量的donation,加上了作者的微信;作者给予了充分的支持。整体使用体验特别好;

引入依赖

poi-tl版本列表

<dependency>
    <groupId>com.deepoove</groupId>
    <artifactId>poi-tl</artifactId>
    <version>1.12.2</version>
</dependency>

依赖冲突

引入成功后如果有如下报错,那么说明有依赖冲突,

Caused by: java.lang.NoSuchFieldError: Factory
    at org.apache.poi.xwpf.usermodel.XWPFDocument.onDocumentRead(XWPFDocument.java:196)
    at org.apache.poi.ooxml.POIXMLDocument.load(POIXMLDocument.java:169)
    at org.apache.poi.xwpf.usermodel.XWPFDocument.<init>(XWPFDocument.java:159)
    at com.deepoove.poi.xwpf.NiceXWPFDocument.<init>(NiceXWPFDocument.java:118)
    at com.deepoove.poi.xwpf.NiceXWPFDocument.<init>(NiceXWPFDocument.java:114)
    at com.deepoove.poi.XWPFTemplate.compile(XWPFTemplate.java:178)

我这边是这么解决的,

步骤一:首先在idea上安装了一个Maven Helper
步骤二:在控制台输出的错误日志中跳转到对应的jar包,确认抛出错误的jar包的maven坐标
在这里插入图片描述
步骤三:在每一个pom.xml中exclude步骤2中抛出异常的jar包
在这里插入图片描述

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

步骤四:再次运行,如果还有问题则反复执行步骤2-3

最后成功运行后有时候会出一个报错,

java.lang.IllegalArgumentException: Unknown configuration property http://javax.xml.XMLConstants/property/accessExternalStylesheet
	at net.sf.saxon.Configuration.setConfigurationProperty(Configuration.java:4621)
	at net.sf.saxon.s9api.Processor.setConfigurationProperty(Processor.java:352)
	at net.sf.saxon.jaxp.SaxonTransformerFactory.setAttribute(SaxonTransformerFactory.java:305)
	at org.apache.poi.util.XMLHelper.trySet(XMLHelper.java:283)
	at org.apache.poi.util.XMLHelper.getTransformerFactory(XMLHelper.java:224)
	at org.apache.poi.util.XMLHelper.newTransformer(XMLHelper.java:230)
	at org.apache.poi.openxml4j.opc.StreamHelper.saveXmlInStream(StreamHelper.java:56)
	at org.apache.poi.openxml4j.opc.internal.ZipContentTypeManager.saveImpl(ZipContentTypeManager.java:68)
	at org.apache.poi.openxml4j.opc.internal.ContentTypeManager.save(ContentTypeManager.java:450)
	at org.apache.poi.openxml4j.opc.ZipPackage.saveImpl(ZipPackage.java:563)
	at org.apache.poi.openxml4j.opc.OPCPackage.save(OPCPackage.java:1490)
	at org.apache.poi.ooxml.POIXMLDocument.write(POIXMLDocument.java:227)
	at com.deepoove.poi.XWPFTemplate.write(XWPFTemplate.java:235)
	at com.deepoove.poi.XWPFTemplate.writeAndClose(XWPFTemplate.java:246)

该错误并不影响最后正确的文件输出,相应的解决方案可参考,issues 708,主要参考作者和PJ Fanning的回答,这个人也是poi的作者。

什么是依赖冲突

添加链接描述

Excel模板引擎

在使用体验中,easyexcel相对来说比较有

方案官网优点缺点
Apache POI链接
JXLS链接
easyexcelhttps://easyexcel.opensource.alibaba.com/
  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值