word文档处理成富文本生成sql语句导入mysql

本文介绍了一种解决方案,用于将大量word文档通过读取转换为html,然后生成SQL语句导入到MySQL数据库。内容包括递归读取word文件夹、处理不同版本word、图片存储及路径处理,以及如何获取富文本内容。提供了相关的java代码示例和运行效果展示。
摘要由CSDN通过智能技术生成

问题:需要将大量的已存在的word文档导入到web项目里在网站展示,不可能通过编辑录入的方式处理,通过程序实现。
解决思路:通过读取word文档处理成html,再获取html富文本内容,拼接成sql,导入数据库。

要点
1:读取word文件夹会递归读取,只要文件夹下有word文档即可,程序中有过滤word文档的代码,可根据需要修改;
2、可同时处理word2003和word2007+版本的word文档;
3、读取word2007生成的html文档内中文是unicode编码的,放到数据库或浏览器直接打开,不影响页面显示;
4、对word文档中图片做了处理,存储到单独的文件夹,导入mysql或其它数据库后,正确显示图片,要注意路径处理;
5、只处理word2007文档可不生成html直接获取富文本内容,但2003版本不可以,因此统一将doc文档都生成html页面再用java读取html文档获取body元素下的富文本内容。

不足之处,欢迎交流和指正。

可能用到的pom如下:

<!--poi处理word文档-->
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi</artifactId>
			<version>3.15</version>
		</dependency>
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi-scratchpad</artifactId>
			<version>3.15</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.xhtml</artifactId>
			<version>1.0.6</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>

完整的java代码如下:

package test;

import org.apache.commons.lang.StringUtils;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.converter.WordToHtmlConverter;
import org.apache.poi.hwpf.usermodel.Picture;
import org.apache.poi.xwpf.converter.core.FileImageExtractor;
import org.apache.poi.xwpf.converter.core.FileURIResolver;
import org.apache.poi.xwpf.converter.xhtml.XHTMLConverter;
import org.apache.poi.xwpf.converter.xhtml.XHTMLOptions;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.junit.Test;
import org.w3c.dom.Document;

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.*;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/*
 * @Desc word转化为html
 * @Author ls 2019/3/19 0019 11:21
 */
public class Word2Html {


    @Test
    public void handleWordToSql() {
        String path = "F:\\word文档\\";
        List<String> fileNames = new ArrayList<>();
        Map<String, String> contentsMap = new HashMap<>();

        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值