poi 3.14下报错:

org.apache.poi.xwpf.converter.core.XWPFConverterException: java.lang.NullPointerExceptionat org.apache.poi.xwpf.converter.xhtml.XHTMLConverter.convert(XHTMLConverter.java:77)at org.apache.poi.xwpf.converter.xhtml.XHTMLConverter.doConvert(XHTMLConverter.java:63)at org.apache.poi.xwpf.converter.xhtml.XHTMLConverter.doConvert(XHTMLConverter.java:38)at org.apache.poi.xwpf.converter.core.AbstractXWPFConverter.convert(AbstractXWPFConverter.java:61)at com.landy.tools.Test.docxToHtml(Test.java:34)at com.landy.tools.Test.main(Test.java:44)
Caused by: java.lang.NullPointerExceptionat org.apache.poi.xwpf.converter.core.styles.run.RunUnderlineValueProvider.getValue(RunUnderlineValueProvider.java:40)at org.apache.poi.xwpf.converter.core.styles.XWPFStylesDocument.getUnderline(XWPFStylesDocument.java:687)at org.apache.poi.xwpf.converter.xhtml.internal.styles.CSSStylesDocument.createCSSStyle(CSSStylesDocument.java:296)at org.apache.poi.xwpf.converter.xhtml.internal.styles.CSSStylesDocument.createCSSStyle(CSSStylesDocument.java:249)at org.apache.poi.xwpf.converter.xhtml.internal.XHTMLMapper.visitRun(XHTMLMapper.java:248)at org.apache.poi.xwpf.converter.core.XWPFDocumentVisitor.visitRuns(XWPFDocumentVisitor.java:616)at org.apache.poi.xwpf.converter.core.XWPFDocumentVisitor.visitParagraphBody(XWPFDocumentVisitor.java:441)at org.apache.poi.xwpf.converter.core.XWPFDocumentVisitor.visitParagraph(XWPFDocumentVisitor.java:332)at org.apache.poi.xwpf.converter.core.XWPFDocumentVisitor.visitBodyElements(XWPFDocumentVisitor.java:247)at org.apache.poi.xwpf.converter.core.XWPFDocumentVisitor.start(XWPFDocumentVisitor.java:199)at org.apache.poi.xwpf.converter.xhtml.XHTMLConverter.convert(XHTMLConverter.java:73)... 5 more

poi 3.9 报错:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/xwpf/usermodel/IRunBodyat org.apache.poi.xwpf.converter.xhtml.XHTMLConverter.convert(XHTMLConverter.java:72)at org.apache.poi.xwpf.converter.xhtml.XHTMLConverter.doConvert(XHTMLConverter.java:63)at org.apache.poi.xwpf.converter.xhtml.XHTMLConverter.doConvert(XHTMLConverter.java:38)at org.apache.poi.xwpf.converter.core.AbstractXWPFConverter.convert(AbstractXWPFConverter.java:61)at com.landy.tools.Test.docxToHtml(Test.java:34)at com.landy.tools.Test.main(Test.java:44)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.xwpf.usermodel.IRunBodyat java.net.URLClassLoader$1.run(URLClassLoader.java:366)at java.net.URLClassLoader$1.run(URLClassLoader.java:355)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(URLClassLoader.java:354)at java.lang.ClassLoader.loadClass(ClassLoader.java:423)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)at java.lang.ClassLoader.loadClass(ClassLoader.java:356)... 6 more

原因是一样的:
通过调式定位,poi 类的源码不严谨造成;

package org.apache.poi.xwpf.converter.core.styles.run;import org.apache.poi.xwpf.converter.core.styles.XWPFStylesDocument;
import org.apache.poi.xwpf.usermodel.UnderlinePatterns;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRPr;public class RunUnderlineValueProvider extends AbstractRunValueProvider<UnderlinePatterns>{public static final RunUnderlineValueProvider INSTANCE = new RunUnderlineValueProvider();@Overridepublic UnderlinePatterns getValue( CTRPr rPr, XWPFStylesDocument stylesDocument){return ( rPr != null && rPr.isSetU() ) ? UnderlinePatterns.valueOf( rPr.getU().getVal().intValue() ): null;}
}
public class RunUnderlineValueProvider extends AbstractRunValueProvider<UnderlinePatterns>{public static final RunUnderlineValueProvider INSTANCE = new RunUnderlineValueProvider();@Overridepublic UnderlinePatterns getValue( CTRPr rPr, XWPFStylesDocument stylesDocument){// 注意返回时rPr.getU()!=null && rPr.getU().getVal()!=null 判空return ( rPr != null && rPr.isSetU() && rPr.getU()!=null && rPr.getU().getVal()!=null) ? UnderlinePatterns.valueOf( rPr.getU().getVal().intValue() ): null;}
}

这样就会覆盖掉源码(优先调用)


最终解决的办法是修改jar包版本,一定要对应上。

<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.10.1</version>
</dependency>
<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml-schemas</artifactId><version>3.10.1</version>
</dependency>
<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.10.1</version>
</dependency>
<dependency><groupId>org.apache.poi</groupId><artifactId>poi-scratchpad</artifactId><version>3.9</version>
</dependency><dependency><groupId>fr.opensagres.xdocreport</groupId><artifactId>xdocreport</artifactId><version>2.0.1</version>
</dependency><dependency><groupId>fr.opensagres.xdocreport</groupId><artifactId>fr.opensagres.xdocreport.document</artifactId><version>2.0.1</version>
</dependency><dependency><groupId>fr.opensagres.xdocreport</groupId><artifactId>org.apache.poi.xwpf.converter.core</artifactId><version>1.0.6</version>
</dependency><dependency><groupId>fr.opensagres.xdocreport</groupId><artifactId>org.apache.poi.xwpf.converter.pdf</artifactId><version>1.0.6</version>
</dependency><dependency><groupId>fr.opensagres.xdocreport</groupId><artifactId>org.apache.poi.xwpf.converter.xhtml</artifactId><version>1.0.6</version>
</dependency>

java word转html 报错org/apache/poi/xwpf/usermodel/IRunBody相关推荐

  1. java word转html 报错 org/apache/poi/xwpf/usermodel/IRunBody

    最终解决的办法是修改jar包版本,一定要对应上. 1 <dependency> 2 <groupId>org.apache.poi</groupId> 3 < ...

  2. java.lang.NoClassDefFoundError: org/apache/poi/xwpf/usermodel/IRunBody异常

    异常截图: 原因:1. maven缺少poi-ooxml包 2.maven poi-ooxml包版本问题导致org.apache.poi.xwpf.usermodel缺: IRunBody.class ...

  3. hutool excel导入报错org.apache.poi.ss.usermodel.Cell.getCellType()Lorg/apache/poi/ss/usermodel/CellType;

    使用hutoolexcel导入时报错如下 org.springframework.web.util.NestedServletException: Handler dispatch failed; n ...

  4. org.apache.poi.xwpf.usermodel不存在问题

    参考文章 问题 天在使用POI包解析word文档的时候,遇到了个让我恶心了好久的bug... 就是包已经导入成功了,代码引用也没问题, 一运行就报 org.apache.poi.xwpf.usermo ...

  5. poi 报错 org/apache/poi/POIXMLTypeLoader

    报错代码 new SXSSFWorkbook(500) 在新建表格对象时报错,所以可以排除代码逻辑错误. 第一反应是jar包没有导全,但是看了目录是全的,怀疑是jar包冲突,于是查了一下,在3.14版 ...

  6. 【poi xlsx报错】使用POI创建xlsx无法打开

    如果使用的XSSFWorkbook创建的xls,打开的时候会有这样的提示: 这样 XSSFWorkbook 和HSSFWorkbook的区别. HSSF - 提供读写Microsoft Excel X ...

  7. java poi 段落行间距_java - Apache poi XWPF Paragraph行间距 - 堆栈内存溢出

    我正在尝试使用Java / Coldfusion中的Apache Poi构建一个word文档. 到目前为止,它让我做了很多我想要的格式,除了段落的行间距. 有谁知道如何将段落设置为单行间隔? 它不断构 ...

  8. 2、maven案例idexXML调模板maven运Tomcat报错org.apache.jasper.JasperException: Unable to compile class forJSP

    报错org.apache.jasper.JasperException: Unable to compile class forJS解决方案 如图,启动服务器成功,但是登陆时报错,原因是6一下版本不兼 ...

  9. @webservice报错org.apache.cxf.common.i18n.UncheckedException: No operation was found with

    文章目录 1. 现象 2. 解决办法1 3. 解决办法2 1. 现象 整合spring+cxf的webservice,成功发布了wsdl,但在调用的时候报错 org.apache.cxf.common ...

最新文章

  1. HTML中三维特性,前端进阶系列(三):HTML5新特性
  2. Xshell上传、下载文件到linux
  3. 服务拆分-案例Demo
  4. 使用promise封装ajax
  5. 小甲鱼 OllyDbg 教程系列 (九) :Delphi 程序逆向特点
  6. Kubernetes教程 - Kubernetes综合指南(Use Guide)
  7. android如何兴起_情感设计的必要兴起
  8. 安装Jmeter插件管理器
  9. 7月21日王者服务器维修,2020年7月21日王者荣耀世冠杯,GOG2:0EMC,实力碾压运营滴水不漏...
  10. rsync的自动脚本实现方案(非rsyncd服务)
  11. 天津西站,大屏幕程序出错啦
  12. 重装系统四种方法(CGI还原,NTSetup安装,GHOST还原,手动GHOST)的区别
  13. Edxposed研究之Magisk源码下载编译的详细实战教程
  14. 大型医院HIS系统源码,医院信息管理系统源码 C/S架构
  15. 电脑突然重启解决方案
  16. 利用.sym跨平台解析iOS符号
  17. 2017年下半年中学综合素质问答题
  18. krpano限制场景视角
  19. RISC-V指令集架构优势
  20. 虚拟机安装安装增强失败:modprobe vboxguest failed

热门文章

  1. HDU1233 还是畅通工程【Kruskal算法+并查集】
  2. Momentum(动量/冲量)的理解及应用
  3. 维纳过程(Wiener Process)与高斯过程(Gaussian Process)
  4. 编程与算法中的端点问题(linspace(a, b, n),endpoint)
  5. http://t.cn/xx 等链接的生成与还原
  6. 整数、区间与区间端点
  7. Python Tricks(十)—— 递归修改文件名
  8. 没有基础的人可以学python吗-今天就来告诉你,没有编程基础的人适不适合学python...
  9. python处理excel的优势-Python处理Excel数据的坑,一文让你不用重复犯错
  10. python基础教程是什么-Python基础教程_Python入门知识