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
相关推荐
好家伙VCC12 分钟前
**CQRS模式实战:用Go语言构建高并发读写分离架构**在现代分布式系统中,随着业务复杂度的提升和用户量的增长,传统的单数据库模型逐fy1216312 分钟前
Java进阶——IO 流二妹的三爷13 分钟前
Node.JS 版本管理工具 Fnm 安装及配置(Windows)cngkqy14 分钟前
NoClassDefFoundError: org/apache/poi/logging/PoiLogManagerl1o3v1e4ding28 分钟前
Java网站项目集成GO-FLY开源在线客服系统功能,集成IM即时通信m0_6515939132 分钟前
领域驱动设计(DDD)实战指南:如何正确构建复杂系统nbwenren33 分钟前
linux 设置tomcat开机启动Y40900140 分钟前
【多线程】Thread 类东离与糖宝1 小时前
Spring AI Alibaba v1.0 正式版:Java 企业 AI 网关从 0 到 1 搭建reasonsummer1 小时前
【办公类-142-04】20260330插班生word转长表EXCLE(4)新表重制