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
相关推荐
wuxuanok1 分钟前
Web后端开发-分层解耦kyle~33 分钟前
C/C++字面量neoooo41 分钟前
别慌,Java只有值传递——一次搞懂“为啥我改了它还不变”!秋难降42 分钟前
Python 知识 “八股”:给有 C 和 Java 基础的你😁😁😁wuxuanok44 分钟前
Web后端开发-请求响应livemetee1 小时前
spring-ai 1.0.0 (3)交互增强:Advisor 顾问模块DDDDDouble1 小时前
<二>Sping-AI alibaba 入门-记忆聊天及持久化一切顺势而行1 小时前
kafka总结yanjiaweiya2 小时前
云原生-集群管理默默地离开2 小时前
Blob二进制处理的王者