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();
}
}
}
word文档转html(只支持段落和表格)
李李李李李李等待,李李李李李李哒哒2024-08-31 10:07
相关推荐
abcnull37 分钟前
用javaparser做精准测试叶小鸡43 分钟前
Java 篇-项目实战-苍穹外卖-笔记汇总AI人工智能+电脑小能手1 小时前
【大白话说Java面试题】【Java基础篇】第22题:HashMap 和 HashSet 有哪些区别juniperhan1 小时前
Flink 系列第21篇:Flink SQL 函数与 UDF 全解读:类型推导、开发要点与 Module 扩展ID_180079054731 小时前
Python 实现亚马逊商品详情 API 数据准确性校验(极简可用 + JSON 参考)c++之路2 小时前
C++23概述专注API从业者2 小时前
Open Claw 京东商品监控选品实战:一键抓取、实时监控、高效选品摇滚侠3 小时前
DBeaver 导入数据库 导入 SQL 文件 MySQL 备份恢复keep one's resolveY3 小时前
SpringBoot实现重试机制的四种方案天空属于哈夫克34 小时前
企业微信API常见的错误和解决方案