word导出(使用freemarker模板导出)

package com.shangyukeji.chuangke.controller;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.UnsupportedEncodingException;

import java.io.Writer;

import java.util.HashMap;

import java.util.Map;

import com.jfinal.plugin.activerecord.Db;

import com.jfinal.plugin.activerecord.Record;

import freemarker.template.Configuration;

import freemarker.template.DefaultObjectWrapper;

import freemarker.template.Template;

import freemarker.template.TemplateException;

import freemarker.template.TemplateExceptionHandler;

public class DocumentHandler {

private Configuration configuration = null;

private static String filepath = PropKit.use("config.properties").get("file.path");

public DocumentHandler() {

configuration = new Configuration();

configuration.setDefaultEncoding("utf-8");

}

public void createDoc(Map<String,Object> dataMap,String fileName) throws UnsupportedEncodingException {

Configuration configuration = new Configuration();

Template t=null;

try {

configuration.setDirectoryForTemplateLoading(new File("D:\\code"));

configuration.setDefaultEncoding("utf-8");

configuration.setObjectWrapper(new DefaultObjectWrapper());

configuration.setTemplateExceptionHandler(TemplateExceptionHandler.IGNORE_HANDLER);

t = configuration.getTemplate("1-1.ftl");

} catch (IOException e) {

e.printStackTrace();

}

File outFile = new File(fileName);

Writer out = null;

FileOutputStream fos=null;

try {

fos = new FileOutputStream(outFile);

OutputStreamWriter oWriter = new OutputStreamWriter(fos,"UTF-8");

out = new BufferedWriter(oWriter);

} catch (FileNotFoundException e1) {

e1.printStackTrace();

}

try {

t.process(dataMap, out);

out.close();

fos.close();

} catch (TemplateException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

public static void downloadWord(String id) throws UnsupportedEncodingException{

DocumentHandler mdoc = new DocumentHandler();

Map<String, Object> dataMap = new HashMap<String, Object>();

dataMap.put("aa", " ");

dataMap.put("bb", " ");

dataMap.put("cc", " ");

dataMap.put("dd", " ");

dataMap.put("ee", " ");

dataMap.put("ff", " ");

mdoc.createDoc(dataMap, "c:/合同协议.doc");

}

}

//模板**.xml或者**.ftl都应放在D:\\code文件夹下面(此文件可以随便定义,可以放置任何盘下),生成的文件‘合同协议.doc‘可以放置任何盘下,可以根据个人不同需要随意改动

时间: 2024-11-05 11:28:01

word导出(使用freemarker模板导出)的相关文章

PHP版另类EXCEL导出,按模板导出!

PHP版另类EXCEL导出,按模板导出! 特点: 不需要使用插件!而且支持导出非常好看的Excel! 实例截图: 步骤: 1.找到一个Excel,并将其另存为xml格式 2.修改xml格式文件,中间将 数据部分 替换成PHP代码 3.然后在导出将 该xml 文件用 include引入到系统内,可以得到xml的数据字符串 // 执行文件得到内容 ob_start(); include $file; return ob_get_clean(); 4.最后将这些字符串写入到 xls文件里即可! 参考实

word文档的导出(用freemarker模板导出)

1.将要导出的word文档另存为xml格式的 2.用文档编辑器打开(如:notepad++),将要展示的数据用${name}的形式替换,“name”对应数据库中的字段 3.根据模板生成 package com.idcsol.apps.common.utils; import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;

Java 使用模板生成 Word 文件---基于 Freemarker 模板框架

Java项目引入 Freemarker 插件自行完成. 步骤如下: 1.编写 Word 模板,并将模板中要用代码动态生成数据用 Freemarker 变量取代,即${变量名},如${username}: 2.把该 word 文档 另存为 xml 文件(格式选择 Word 2003 XML,注意是另存为,不是改扩展名为 xml),然后再改扩展名为 ftl: 3.用编辑软件打开最后的 ftl 文件,并用查找功能查找第一步中定义的变量名,如:username, 就会发现 Word 软件在将 Word

FreeMarker(XML模板)导出word

在项目中使用它完成的功能是按照固定的模板将数据导出到Word.比如台账.在完成后将处理过程按照台账的要求导出,有时程序中需要实现生成标准Word文档,要求能够打印,并且保持页面样式不变. 这个功能就是由XML+Freemarder来实现的,Word从2003开始支持XML格式,大致的步骤:用office2003或者以上的版本编辑 好 word的样式,然后另存为xml,将xml翻译为FreeMarker模板,最后用java来解析FreeMarker模板并输出Doc. 一.模板的制作 先用Word做

Java 用Freemarker完美导出word文档(带图片)

Java  用Freemarker完美导出word文档(带图片) 前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. 准备材料 1.word原件 2.编辑器(推荐Firstobject free XML editor) 实现步骤 1.用Microsoft Office Word打开word原件: 2.把需要动态修改的内容替换成***,如果有图片,尽量选择较小的图片几十K左右,并调整好位置: 3.另存为,选择保存类型

C#,WPF使用word模板导出word文档

使用word模板导出word文档,首先需要在word模板中插入书签: 根据创建的书签名和位置,将需要写入的内容插入到word文件中. 需要引用  Microsoft.Office.Interop.Word;在添加引用-程序集中搜索可以找到. using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Windows; usin

Net Core DocXCore 实现word模板导出

实际工作中,往往有这样的需求,需要导出word,还有各种各样的样式,于是有了word模板导出. 实现以下几个需求: 1.表单导出 2.表格导出 3.表单表格混合导出 4.实际用例测试 解决方案: 实现是基于NET Core 2.1 ,搜索了各个开源项目最终基于DocX这个开源库,当初实现时发现DocX作者并没有发布Core的版本,最后在Nuget搜索到DocXCore这个包,但是没有GitHub搜索到这个库. 上面还遇到一个坑爹的问题,系统在win运行没问题,一部署到centos导出就挂了,根据

C# 导出word文档及批量导出word文档(2)

aspose.word主要是通过把读取出来的数据放到datatable里,在datable里做相应的格式的调整,再导出到word文档里.mvc和webform最后导出的语句略有不同,在mvc的controller,用的是base.File,对应的是FileContentResult,在webform里用的是Response.写法分别为: //在WebForm中,保存文档到流中,使用Response. BinaryWrite输出该文件 var docStream = new MemoryStrea

Java使用IText(VM模版)导出PDF,IText导出word(二)

===============action=========================== //退款导出word    public void exportWordTk() throws IOException{         Long userId=(Long)ServletActionContext.getContext().getSession().get(Constant.SESSION_USER_ID);        //获取生成Pdf需要的一些路径        Strin