java根据word模板导出word文件
1、word模板文件处理,如下图所示在word 文档中填值的地方写入占位变量
2、将word文档另存为xml文件、编辑如下图,找到填写的占位,修改为${bcrxm}格式
3、将文件后缀名改为.ftl文件
4、java处理过程 、 引入frameMark jar 包
5、java代码
一、将需要填充的数据封装到map中、与模板中的占位对应、为什么用map 我也不知道。
二、创建configuration对象
三、设置编码 utf-8
四、获取模板 configuration.setDirectoryForTemplateLoading() 方法、configuration.getTemplate()方法
五、将模板和数据模型合并生成文件 template.process(map, out); //map为封装的数据、out为输出流对象
6、完整代码、configuration.setClassForTemplateLoading 方法有不同的使用方式、可以根据自己的需要选择、具体使用方法、问度娘。
- public static String createWord1(Map dataMap,String templateName,String filePath,String fileName,HttpServletRequest request,HttpServletResponse response){
- String fileOnlyName=null;
- try {
- //创建配置实例
- Configuration configuration = new Configuration();
- //设置编码
- configuration.setDefaultEncoding("UTF-8");
- //ftl模板文件统一放至 template 包下面
- configuration.setClassForTemplateLoading(Util.class,"/template/");
- //获取模板
- Template template = configuration.getTemplate(templateName,"UTF-8");
- //重命名
- fileOnlyName = rename(fileName);
- //定义路径 统一放到 webappo/hgjc/uploadRoot目录下
- String servicePath = request.getSession().getServletContext().getRealPath(File.separator);
- String basePath = ReadConfig.getConfigValue("uploadRoot")+File.separator+ReadConfig.getConfigValue(filePath)+File.separator+fileOnlyName;
- //输出文件
- File outFile = new File(servicePath+basePath);
- //如果输出目标文件夹不存在,则创建
- if (!outFile.getParentFile().exists() ){
- outFile.getParentFile().mkdirs();
- }
- //将模板和数据模型合并生成文件
- Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),"UTF-8"));
- //生成文件
- template.process(dataMap, out);
- //关闭流
- out.flush();
- out.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return fileOnlyName;
- }
java根据word模板导出word文件的更多相关文章
- 利用模板导出文件(二)之jacob利用word模板导出word文件(Java2word)
https://blog.csdn.net/Fishroad/article/details/47951061?locationNum=2&fps=1 先下载jacob.jar包.解压后将ja ...
- java使用freemarker模板导出word(带有合并单元格)文档
来自:https://blog.csdn.net/qq_33195578/article/details/73790283 前言:最近要做一个导出word功能,其实网上有很多的例子,但是我需要的是合并 ...
- .net core 使用NPOI填充Word模板导出Word
最近工作用到在Word模板插入数据库数据,导出一个带数据的Word文件,想起来之前操作Word都是用微软提供的Microsoft.Office.Interop.Word,而在最新的..NET CORE ...
- C#实现按Word模板导出Word(加书签bookMark)
本方法是针对word导出操作,需要制作好的模板文件 模板.doc 引入应用Microsoft.Office.Interop.Word 11.0 (office2003) 导出文件注意:有时候迅雷会在 ...
- SpringBoot集成文件 - 如何基于POI-tl和word模板导出庞大的Word文件?
前文我们介绍了通过Apache POI通过来导出word的例子:那如果是word模板方式,有没有开源库通过模板方式导出word呢?poi-tl是一个基于Apache POI的Word模板引擎,也是一个 ...
- Java 用Freemarker完美导出word文档(带图片)
Java 用Freemarker完美导出word文档(带图片) 前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. ...
- C#通过模板导出Word(文字,表格,图片)
C#通过模板导出Word(文字,表格,图片) C#导出Word,Excel的方法有很多,这次因为公司的业务需求,需要导出内容丰富(文字,表格,图片)的报告,以前的方法不好使,所以寻找新的导出方法, ...
- Net Core DocXCore 实现word模板导出
实际工作中,往往有这样的需求,需要导出word,还有各种各样的样式,于是有了word模板导出. 实现以下几个需求: 1.表单导出 2.表格导出 3.表单表格混合导出 4.实际用例测试 解决方案: 实现 ...
- 使用word模板生成pdf文件
使用word模板生成pdf文件 源码:UserWord
随机推荐
- win10重复安装
使用大白菜启动盘装win10的时候,一直循环的重启然后设置,然后再重启,再设置.陷入了死循环. 解决办法:在自定义快捷键那个界面按 Ctrl+Shift+F3 .这是直接进入桌面的快捷键.
- Hadoop记录-Hadoop shell常用命令
- C# PointToScreen
子窗体定位时,如果主窗口不在左上角,需要根据主窗口的坐标,相减才行. Point p1 = Label.PointToScreen(new Point(0, 0)); p1.X -= this.X; ...
- springboot+rabbitmq整合示例程
关于什么是rabbitmq,请看另一篇文: http://www.cnblogs.com/boshen-hzb/p/6840064.html 一.新建maven工程:springboot-rabbit ...
- windows cmd相关操作
一:文件夹1. 新建文件夹方式一:md[盘符:\][路径\]新目录例如:md c:\test\newtest 方式二:先使用cmd进入需要新建文件的根目录下,使用md或者mkdir 直接创建文件夹ne ...
- Struts局部异常与全局异常处理
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAowAAAG3CAIAAACxBJNyAAAgAElEQVR4nOy9z6tk15Ymdv4B0eRU8O
- shiroWeb项目-认证及MD5认证信息在页面显示(十)
realm设置完整认证信息 // realm的认证方法,从数据库查询用户信息 @Override protected AuthenticationInfo doGetAuthenticationInf ...
- Informatic学习总结_day02_增量抽取
SELECT EMP.EMPNO, EMP.ENAME, EMP.JOB, EMP.MGR, EMP.HIREDATE, EMP.SAL, EMP.COMM, EMP.DEPTNO FROM EMP ...
- 【vim】查找重复的连续的单词
当你很快地打字时,很有可能会连续输入同一个单词两次,就像 this this.这种错误可能骗过任何一个人,即使是你自己重新阅读一遍也不可避免.幸运的是,有一个简单的正则表达式可以用来预防这个错误.使用 ...
- nodejs 在线学习课堂
http://ww***/class/5359f6f6ec7452081a7873d8