简介
在 Java 开发中,经常需要将网页内容(HTML)导出为 Word 文档。Apache POI 是一个广泛使用的开源库,可用于操作 Microsoft Office 格式文件。 虽然 POI 本身不直接支持 HTML 解析,但可以通过结合其他工具(如 Jsoup)解析 HTML 并将其内容写入 Word 文档。
基本实现步骤
- 使用 Jsoup 解析 HTML 字符串。
- 遍历 HTML 元素,提取文本、标题、列表等内容。
- 使用 Apache POI 的 XWPFDocument 创建 .docx 文件并写入内容。
示例代码
import org.apache.poi.xwpf.usermodel.*;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.FileOutputStream;
import java.io.IOException;
public class HtmlToWord {
public static void main(String[] args) throws IOException {
String html = "<h1>标题</h1><p>这是一个段落。</p>";
Document doc = Jsoup.parse(html);
XWPFDocument wordDoc = new XWPFDocument();
Elements elements = doc.body().children();
for (Element el : elements) {
if ("h1".equals(el.tagName())) {
XWPFParagraph p = wordDoc.createParagraph();
p.setStyle("Heading1");
XWPFRun run = p.createRun();
run.setText(el.text());
run.setBold(true);
run.setFontSize(16);
} else if ("p".equals(el.tagName())) {
XWPFParagraph p = wordDoc.createParagraph();
XWPFRun run = p.createRun();
run.setText(el.text());
}
}
try (FileOutputStream out = new FileOutputStream("output.docx")) {
wordDoc.write(out);
}
wordDoc.close();
}
}
注意事项
- POI 对复杂样式(如 CSS)支持有限,建议使用结构化 HTML。
- 图片、表格等元素需额外处理。
- 可考虑使用第三方封装库(如 docx4j + Thymeleaf)提升开发效率。
相关工具推荐
如果您不需要编程实现,也可以使用以下在线工具快速完成格式转换: