java导出word模板
2016-06-16 20:18
459 查看
项目中,可能会有很多地方需要导出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文件,去找对应的目录加载模板。
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文件,去找对应的目录加载模板。
相关文章推荐
- Ecliplse 使用中遇到的问题
- javaweb—JDBC连接数据库
- Eclipse Find/Replace
- Java多态性理解
- Java合并数组的两个子有序段
- javaweb—SpringMVC+Spring+MyBatis整合
- Java正则表达式
- 深入浅出 Java Concurrency (1) : J.U.C的整体认识
- MyBatis-spring和spring JDBC批量插入Mysql的效率比较
- Spring@Autowired注解与自动装配
- Java反射机制
- Java Web项目--显示一个静态页面
- spring data jpa分页查询
- Java 动态代理与反射机制
- My Java Coding Style
- Java(六) final用法实例讲解
- Java反射(二)----- 动态加载类
- Java自定义注解——简易实现spring @Autowired
- JDBC:java.sql.SQLException: Before start of result set怎么办
- 用java实现文件的复制功能