使用freemarker生成word,excel
2017-03-07 00:00
351 查看
废话不多说,直接进入正题。
编写一个word模板
将word模板另存为xml文件
使用notepad++打开,格式化下,这里只截取其中的一部分
找到需要替换的词,替换如下
替换如下
如果是表格,需要用到freemarker的<#list>标签
找到相应位置,替换如下:
后面的也是如此,照这样替换,记得要有结束标签</#list>
替换完之后另存为ftl文件
接下来就是代码了
相应的,也可以对excel进行这样的操作,代码不用改变。
编写一个word模板
将word模板另存为xml文件
使用notepad++打开,格式化下,这里只截取其中的一部分
找到需要替换的词,替换如下
替换如下
如果是表格,需要用到freemarker的<#list>标签
找到相应位置,替换如下:
后面的也是如此,照这样替换,记得要有结束标签</#list>
替换完之后另存为ftl文件
接下来就是代码了
@Test public void test1() throws IOException, TemplateException { /** 初始化配置文件 **/ Configuration configuration = new Configuration(); /** 设置编码 **/ configuration.setDefaultEncoding("utf-8"); /** 我的ftl文件是放在D盘的**/ String fileDirectory = "D:\\"; /** 加载文件 **/ configuration.setDirectoryForTemplateLoading(new File(fileDirectory)); /** 加载模板 **/ Template template = configuration.getTemplate("excel.ftl"); /** 准备数据 **/ Map<String,Object> dataMap2 = new HashMap<String,Object>(); OderDetail oderDetail = new OderDetail("12312", "张三", new BigDecimal(123), new BigDecimal(123), new BigDecimal(12321), "123", "213", "12312", "213"); OderDetail oderDetail2 = new OderDetail("12312", "张三", new BigDecimal(123), new BigDecimal(123), new BigDecimal(12321), "123", "213", "12312", "213"); OderDetail oderDetail3 = new OderDetail("12312", "张三", new BigDecimal(123), new BigDecimal(123), new BigDecimal(12321), "123", "213", "12312", "213"); OderDetail oderDetail4 = new OderDetail("12312", "张三", new BigDecimal(123), new BigDecimal(123), new BigDecimal(12321), "123", "213", "12312", "213"); ArrayList<OderDetail> oderDetails = new ArrayList<OderDetail>(); oderDetails.add(oderDetail); oderDetails.add(oderDetail2); oderDetails.add(oderDetail3); oderDetails.add(oderDetail4); dataMap2.put("orderNo","10000012312"); dataMap2.put("wareHouseNumber","21323123"); dataMap2.put("rkDate","2017-01-22"); dataMap2.put("wareHouse","好仓库"); dataMap2.put("supplier","卡斯柯"); dataMap2.put("pList", oderDetails); /** 指定输出word文件的路径 **/ String outFilePath = "D:\\myFreeMarker.xls"; File docFile = new File(outFilePath); FileOutputStream fos = new FileOutputStream(docFile); Writer out = new BufferedWriter(new OutputStreamWriter(fos, "utf-8"),10240); template.process(dataMap2,out); if(out != null){ out.close(); } }
相应的,也可以对excel进行这样的操作,代码不用改变。
相关文章推荐
- 使用freemarker生成word,excel
- Java Web项目中使用Freemarker生成Word文档
- echarts 生成统计图时,自动保存图片到服务器,并使用freemarker生成word
- 使用freemarker模板生成word文档
- 在javaweb中使用freemarker生成word文档
- 使用Freemarker生成Word
- 使用Word编辑生成freemarker 模版.ftl文件
- freemarker生成excel、word、html、xml实例教程
- 使用freemarker生成word,步骤详解并奉上源代码
- 使用freemarker生成word,步骤详解并奉上源代码
- 使用Interop.Excel生成Word表格文档
- Java Web项目中使用Freemarker生成Word文档
- 使用FreeMarker生成word文档
- Java Web项目中使用Freemarker生成Word文档
- Java Web项目中使用Freemarker生成Word文档
- Spring Boot中使用freeMarker生成word文档
- 使用DCOM组件生成Word或者EXcel需要做的计算机配置
- 使用FreeMarker生成Word文档中的表格
- 使用freemarker生成word
- 使用freemarker生成word,步骤详解并奉上源代码