word文档转html(只支持段落和表格)

复制代码
maven依赖
 <dependency>  
        <groupId>org.apache.poi</groupId>  
        <artifactId>poi-ooxml</artifactId>  
        <version>5.2.3</version>  
</dependency>  


import org.apache.poi.xwpf.usermodel.*;

import java.io.*;


public class WordToHtmlConverter {



    public static String convertWordToHtml(String filePath) throws IOException {
        StringBuilder htmlContent = new StringBuilder("<html><body>");

        try (FileInputStream fis = new FileInputStream(filePath);
             XWPFDocument document = new XWPFDocument(fis)) {

            // 首先处理段落
            for (XWPFParagraph paragraph : document.getParagraphs()) {
                htmlContent.append("<p>").append(getParagraphText(paragraph)).append("</p>");
            }

            // 然后处理表格
            for (XWPFTable table : document.getTables()) {
                htmlContent.append("<table border='1'>");
                for (XWPFTableRow row : table.getRows()) {
                    htmlContent.append("<tr>");
                    for (XWPFTableCell cell : row.getTableCells()) {
                        htmlContent.append("<td>");
                        for (XWPFParagraph paragraph : cell.getParagraphs()) {
                            htmlContent.append(getParagraphText(paragraph));
                        }
                        htmlContent.append("</td>");
                    }
                    htmlContent.append("</tr>");
                }
                htmlContent.append("</table>");
            }
        }

        htmlContent.append("</body></html>");
        return htmlContent.toString();
    }

    public static String convertWordToHtml(InputStream inputStream) throws IOException {
        StringBuilder htmlContent = new StringBuilder("<html><body>");

        try (XWPFDocument document = new XWPFDocument(inputStream)) {

            // 处理段落
            for (XWPFParagraph paragraph : document.getParagraphs()) {
                htmlContent.append("<p>").append(getParagraphText(paragraph)).append("</p>");
            }

            // 处理表格
            for (XWPFTable table : document.getTables()) {
                htmlContent.append("<table border='1'>");
                for (XWPFTableRow row : table.getRows()) {
                    htmlContent.append("<tr>");
                    for (XWPFTableCell cell : row.getTableCells()) {
                        htmlContent.append("<td>");
                        // 这里简单地将单元格中的文本内容添加到HTML中
                        // 注意:单元格可能包含多个段落,需要遍历它们
                        for (XWPFParagraph paragraph : cell.getParagraphs()) {
                            htmlContent.append(getParagraphText(paragraph));
                        }
                        htmlContent.append("</td>");
                    }
                    htmlContent.append("</tr>");
                }
                htmlContent.append("</table>");
            }

        }

        htmlContent.append("</body></html>");
        return htmlContent.toString();
    }

    // 辅助方法,用于获取段落中的文本内容
    private static String getParagraphText(XWPFParagraph paragraph) {
        StringBuilder text = new StringBuilder();
        for (XWPFRun run : paragraph.getRuns()) {
            text.append(run.getText(0));
        }
        return text.toString();
    }

    public static void main(String[] args) {
        try {
            String html = convertWordToHtml("xxx.doc");
            System.out.println(html); 
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


}
相关推荐
杰克尼22 分钟前
二分查找为什么总是写错
java·数据结构·算法
Liudef0625 分钟前
DeepseekV3.2 实现构建简易版Wiki系统:从零开始的HTML实现
前端·javascript·人工智能·html
半旧夜夏2 小时前
【分布式缓存】Redis持久化和集群部署攻略
java·运维·redis·分布式·缓存
短视频矩阵源码定制2 小时前
矩阵系统源码推荐:技术架构与功能完备性深度解析
java·人工智能·矩阵·架构
Eiceblue2 小时前
使用 Java 将 Excel 工作表转换为 CSV 格式
java·intellij-idea·excel·myeclipse
漂流幻境2 小时前
IntelliJ IDEA的Terminal中执行ping命令时遇到的“No route to host“问题
java·ide·intellij-idea
苹果醋33 小时前
element-ui源码阅读-样式
java·运维·spring boot·mysql·nginx
BUG?不,是彩蛋!3 小时前
IntelliJ IDEA从安装到使用:零基础完整指南
java·ide·intellij-idea
程序员阿鹏3 小时前
56.合并区间
java·数据结构·算法·leetcode
SmoothSailingT3 小时前
IDEA实用快捷键
java·ide·intellij-idea