Java实现word文档的导入、导出 一直写Excel导入,word导入百度了一下 2003 2007版好像还有区别,有没有大佬来个工具类 或者 demo
Java实现word文档的导入、导出 一直写Excel导入,word导入百度了一下 2003 2007版好像还有区别,有没有大佬来个工具类 或者 demo
Java 用POI写就可以了~贴一下部分代码,前面都是一些业务查询然后塞数据文字,然后你顺着去网上搜一下应该就能找到更多示例~
String templatePath = request.getSession().getServletContext()
.getRealPath("/template/导出模板.docx");
String temDir = request.getSession().getServletContext()
.getRealPath("/template");
String tmpFileName = new Date().getTime() + ".docx";
try {
String exportFileName = "";
String userAgent = request.getHeader("user-agent").toLowerCase();
if (userAgent.contains("msie") || userAgent.contains("like gecko")) {
exportFileName = URLEncoder.encode(reportTitle.toString(),
"UTF-8");
} else {
exportFileName = new String(reportTitle.toString().getBytes(
"utf-8"), "ISO-8859-1");
}
exportFileName += ".docx";
XWPFDocument doc = WordExportUtil
.exportWord07(templatePath, params);
// 输出内容及标题
for (int i = 0; i < doc.getParagraphs().size(); i++) {
XWPFParagraph p = doc.getParagraphs().get(i);
if (p.getText().equals("---processContent---")) {
setParagraphs(p, processContent, titleList);
} else if (p.getText().equals("---finishContent---")) {
setParagraphs(p, finishContent, titleList);
}
}
String tmpPath = temDir + "/" + tmpFileName;
FileOutputStream fos = new FileOutputStream(tmpPath);
doc.write(fos);
// 设置强制下载不打开
response.setContentType("application/force-download");
// 设置文件名
response.addHeader("Content-Disposition", "attachment;fileName="
+ exportFileName);
OutputStream out = response.getOutputStream();
doc.write(out);
out.close();
导出的话有模板就用poi-tl很简单,没有就只能用poi硬搞了,poi啥版本都支持,poi-tl只用过docx,doc支不支持没注意
导入docx的话用docx4j,doc没做过,不过哪种方法解析都比较麻烦
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
楼主还可以试试Free Spire.Doc for Java,是一款免费国产控件,也支持word文档导入导出。除此之外,还支持一系列word文档操作,比如,word转换成其他文档格式,打印word文档,加密解密文档。