系统导出功能,多条数据分别导出word,多个word打包到一个zip进行导出,直接拷贝过去可用,如果缺包自行查找。
参考: Java使用word模板导出word_java根据模板导出word-优快云博客.
@Action(value = "exportToWordZip")
public String exportToWordZip() throws Exception {
HttpServletRequest request = ServletActionContext.getRequest();
WordUtil xwpfTUtil = null;
FileOutputStream os = null;
InputStream is = null;
List<String> files = new ArrayList<>();
for (int i = 0; i < 2; i++) {
//导出的数据处理
Map<String, Object> params = new HashMap<>();
params.put("${Name}", "Fisher3652");
params.put("${Sex}", "男");
params.put("${Desc}", "18岁\tJAVA开发\r熟悉JVM基本原理");
params.put("${@Pic}", "C:\\Users\\admin\\Desktop\\资源\\32.png");
//获取模版
is = FileUtil.class.getClassLoader().getResourceAsStream("static/letterWordDemo.docx");
xwpfTUtil = new WordUtil();
CustomXWPFDocument doc;
doc = new CustomXWPFDocument(is);
//模版替换成真实数据
xwpfTUtil.replaceInPara(doc, params);
xwpfTUtil.replaceInTable(doc, params);
//生成word到临时文件
String realPath = request.getSession().getServletContext().getRealPath("/");
String parentPath = new File(realPath).getParent() + "/exportToWordZipTemp" ;
File dir = new File(parentPath);
if (!dir.exists()) {
dir.mkdirs();
}
String fileName = parentPath + "/" + i + ".docx";
System.out.println(fileName);
os = new FileOutputStream(fileName);
files.add(fileName);
doc.write(os);
System.out.println("word成功生成");
}
xwpfTUtil.close(os);
xwpfTUtil.close(is);
os.flush();
os.close();
writeZip(files, "文件汇总");
return null;
}
package com.dazhi.itp.util.exportWord;
import org.apache.poi.openxml4j.opc.OPCPackage;