需求:导入word文档,按照目录进行拆分并转换成html,将目录及应内容保存到数据库,通过赋值到富文本编辑器在页面展示。
注:此文只适用.docx格式
1、添加POI对应的jar包,我基本上用到了这些,其他看个人情况自行添加。
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>fr.opensagres.poi.xwpf.converter.xhtml</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>fr.opensagres.xdocreport.converter.docx.xwpf</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.14.1</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.4</version>
</dependency>
2、.docx需要POI XWPFDocument进行解析,同时将图片进行本地保存,遍历段落获取目录列表。
3、根据目录所在段落下标删除前后段落,进行文档段落拆分,将拆分的文件转换成html文件输出保存。
4、通过Jsoup读取html文件,获取页面元素,删除空白行,删除标号,替换图片访问路径为相对路径。
5、返回目录对应及对应的html内容。
下面直接上代码:
package com.test.common;
import com.test.common.exception.BusinessException;
import com.test.common.utils.DateUtils;
import com.test.entity.SysFilesE