java poi 基于模板文件替换字符生成word文档
2016-08-25 18:51
776 查看
最近在公司开发个小功能,要求是基于需求提供的word文档模板来生成规定的word文档。
想了一下,就用了poi来做,这里特别强调一点,实现该功能所需的jar包最好是:poi-scratchpad-3.8-beta4-20110826.jar 和 poi-3.8-beta4-20110826.jar 否则会导出一个损坏文件。
word文档中的预设字符:
代码(系统是ssh的):
========================================================================
效果:
想了一下,就用了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(); }
========================================================================
效果:
相关文章推荐
- java基础学习——Swing图形化用户界面编程
- day03循环嵌套打印星星和乘法表
- java异常
- springMVC+mybatis+spring整合 demo
- java序列化和反序列化
- Java -- 访问控制
- SpringMVC:文件上传
- java线程安全问题之静态变量、实例变量、局部变量
- 通过反射看集合泛型的本质-5
- 反射方法的基本操作-4
- java8新概念之stream流
- 类的动态加载-2
- 在ubuntu中使用java版的spark
- 看我是如何处理自定义线程模型---java
- 有关struts2中用到 js 总结
- 5、字符串全排列--Java代码
- 打印类的信息,包括类的成员函数、成员变量(只获取成员函数)-3
- Java -- 内部类
- 【12】Java基础: equals 与 == 的关系,equals 与 hashCode 的关系
- Class类知识简单总结-1