java poi 基於模板檔案替換字元生成word文件
阿新 • • 發佈:2019-01-04
最近在公司開發個小功能,要求是基於需求提供的word文件模板來生成規定的word文件。
想了一下,就用了poi來做,這裡特別強調一點,實現該功能所需的jar包最好是:poi-scratchpad-3.8-beta4-20110826.jar 和 poi-3.8-beta4-20110826.jar 否則會匯出一個損壞檔案。
word文件中的預設字元:
程式碼(系統是ssh的):
1. public void download(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws
Exception {
String path = ExcelUtil.class .getResource("").getPath();//存放模板檔案的路徑,可手動拼接字串
path += "refundApply.doc";//模板檔案
String filePath =
request.getRealPath("/").replace("\\", "/") + "fileTemp/";//生成檔案的路徑,也可手動拼接
String fileName = "生成的檔名.doc";//生成檔案的檔名
response.setHeader("Content-Disposition",
"attachment;fileName=" +java.net.URLEncoder.encode(fileName,FileUtils.Copy(path, filePath + fileName);
File file = new File(filePath + fileName);
FileInputStream inputStream = new FileInputStream(file);
HWPFDocument doc = new HWPFDocument(inputStream);
Range range = doc.getRange();
range.replaceText ("${recNumber}", "123456"); //這裡依次替換就可以了!!
range.replaceText("${recBank}", "中國銀行");
range.replaceText("${recName}", "張三");
ServletOutputStream os = response.getOutputStream();
doc.write(os);
inputStream.close();
os.flush();
os.close();
response.flushBuffer();
}
========================================================================
效果: