java word转html 报错org/apache/poi/xwpf/usermodel/IRunBody
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相关推荐
- java word转html 报错 org/apache/poi/xwpf/usermodel/IRunBody
最终解决的办法是修改jar包版本,一定要对应上. 1 <dependency> 2 <groupId>org.apache.poi</groupId> 3 < ...
- java.lang.NoClassDefFoundError: org/apache/poi/xwpf/usermodel/IRunBody异常
异常截图: 原因:1. maven缺少poi-ooxml包 2.maven poi-ooxml包版本问题导致org.apache.poi.xwpf.usermodel缺: IRunBody.class ...
- 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 ...
- org.apache.poi.xwpf.usermodel不存在问题
参考文章 问题 天在使用POI包解析word文档的时候,遇到了个让我恶心了好久的bug... 就是包已经导入成功了,代码引用也没问题, 一运行就报 org.apache.poi.xwpf.usermo ...
- poi 报错 org/apache/poi/POIXMLTypeLoader
报错代码 new SXSSFWorkbook(500) 在新建表格对象时报错,所以可以排除代码逻辑错误. 第一反应是jar包没有导全,但是看了目录是全的,怀疑是jar包冲突,于是查了一下,在3.14版 ...
- 【poi xlsx报错】使用POI创建xlsx无法打开
如果使用的XSSFWorkbook创建的xls,打开的时候会有这样的提示: 这样 XSSFWorkbook 和HSSFWorkbook的区别. HSSF - 提供读写Microsoft Excel X ...
- java poi 段落行间距_java - Apache poi XWPF Paragraph行间距 - 堆栈内存溢出
我正在尝试使用Java / Coldfusion中的Apache Poi构建一个word文档. 到目前为止,它让我做了很多我想要的格式,除了段落的行间距. 有谁知道如何将段落设置为单行间隔? 它不断构 ...
- 2、maven案例idexXML调模板maven运Tomcat报错org.apache.jasper.JasperException: Unable to compile class forJSP
报错org.apache.jasper.JasperException: Unable to compile class forJS解决方案 如图,启动服务器成功,但是登陆时报错,原因是6一下版本不兼 ...
- @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 ...
最新文章
- HTML中三维特性,前端进阶系列(三):HTML5新特性
- Xshell上传、下载文件到linux
- 服务拆分-案例Demo
- 使用promise封装ajax
- 小甲鱼 OllyDbg 教程系列 (九) :Delphi 程序逆向特点
- Kubernetes教程 - Kubernetes综合指南(Use Guide)
- android如何兴起_情感设计的必要兴起
- 安装Jmeter插件管理器
- 7月21日王者服务器维修,2020年7月21日王者荣耀世冠杯,GOG2:0EMC,实力碾压运营滴水不漏...
- rsync的自动脚本实现方案(非rsyncd服务)
- 天津西站,大屏幕程序出错啦
- 重装系统四种方法(CGI还原,NTSetup安装,GHOST还原,手动GHOST)的区别
- Edxposed研究之Magisk源码下载编译的详细实战教程
- 大型医院HIS系统源码,医院信息管理系统源码 C/S架构
- 电脑突然重启解决方案
- 利用.sym跨平台解析iOS符号
- 2017年下半年中学综合素质问答题
- krpano限制场景视角
- RISC-V指令集架构优势
- 虚拟机安装安装增强失败:modprobe vboxguest failed
热门文章
- HDU1233 还是畅通工程【Kruskal算法+并查集】
- Momentum(动量/冲量)的理解及应用
- 维纳过程(Wiener Process)与高斯过程(Gaussian Process)
- 编程与算法中的端点问题(linspace(a, b, n),endpoint)
- http://t.cn/xx 等链接的生成与还原
- 整数、区间与区间端点
- Python Tricks(十)—— 递归修改文件名
- 没有基础的人可以学python吗-今天就来告诉你,没有编程基础的人适不适合学python...
- python处理excel的优势-Python处理Excel数据的坑,一文让你不用重复犯错
- python基础教程是什么-Python基础教程_Python入门知识