项目场景:

项目有个需求 根据word 和ppt模板自动生成新的word和ppt


问题描述

在生成ppt的过程中报了一个错误Exception in thread "main" java.lang.NoSuchFieldError: Factory

而我重新创建一个项目跑就没有问题

Exception in thread "main" java.lang.NoSuchFieldError: Factory
    at org.apache.poi.xslf.usermodel.XSLFSlideMaster.<init>(XSLFSlideMaster.java:66)
    at org.apache.poi.ooxml.POIXMLFactory.createDocumentPart(POIXMLFactory.java:61)
    at org.apache.poi.ooxml.POIXMLDocumentPart.read(POIXMLDocumentPart.java:661)
    at org.apache.poi.ooxml.POIXMLDocument.load(POIXMLDocument.java:165)
    at org.apache.poi.xslf.usermodel.XMLSlideShow.<init>(XMLSlideShow.java:123)
    at org.apache.poi.xslf.usermodel.XMLSlideShow.<init>(XMLSlideShow.java:137)
    at com.dfsjsoft.nutzplus.module.template.ppt.PPTdemo01.main(PPTdemo01.java:42)


原因分析:

后来发现是版本冲突,我用word使用的是 poi-tl用的是1.8.0

,而我操作ppt 的时候用的poi和poi-ooxml 都是5.2.2


解决方案:

最后解决方法 把poi-tl换成更高的版本就行了

我换成1.12.0 完美解决

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐