java导出word模板

项目中,可能会有很多地方需要导出word模板,首先,你需要有模板,然后,模板另存为xml格式。

package com;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;

import freemarker.cache.FileTemplateLoader;
import freemarker.cache.TemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;

public class CreateWord {

	public static void main(String[] args) {
		Map<String, Object> cont = new HashMap<String, Object>();// 存储数据

		Configuration cfg = new Configuration();

		TemplateLoader templateLoader = null;

		try {
			//模板的路径
			File fir = new File("W:/test/wswhr/");
			
			//生成文件的路径及文件名。
			File outFile = new File("W:/test/wswhr/委托创作合同.doc");

			Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "UTF-8"));

			// 使用FileTemplateLoader
			//制定模板路径
			templateLoader = new FileTemplateLoader(fir);//
			String tempname = "委托创作合同.xml";

			cfg.setTemplateLoader(templateLoader);
			Template t = cfg.getTemplate(tempname, "UTF-8");
			
			t.process(cont, out);
			out.flush();
			out.close();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}
注意,里面的

cfg.setTemplateLoader(templateLoader);

这一句,是指定模板所在目录。

如果只是运行一些测试类,或者本地main方法可以用这个。

如果是在线上服务器,请用下面的代码来制定模板路径。

//创建配置实例 
	        Configuration configuration = new Configuration();
       
	        //设置编码
            configuration.setDefaultEncoding("UTF-8");
            
            //ftl模板文件统一放至 com.lun.template 包下面
            configuration.setClassForTemplateLoading(WordUtil.class, "/cn/digitalpublishing/templates/");
            
            //获取模板 
            Template template = configuration.getTemplate(templateName);

这里的,制定模板路径的方法是,setClassForTemplateLoading.

望文生义也知道,根据指定的class文件,去找对应的目录加载模板。

上一篇:《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之53---BREW SDK 九大功能之电信服务


下一篇:CentOS 7.x里yum安装Odoo 8.0&9.0(OpenERP)