JAVA WEB 导出 Word

JAVA WEB 导出 Word
首先需要一个freemarker.jar的包   




先用Word做一个模板,最后格式转为.ftl

/*********************************************************************************************************************************************************************/
 private Configuration configuration = null;

	public ExportService() {
		configuration = new Configuration();
		configuration.setDefaultEncoding("utf-8");
	}

	public void createDoc(Map<String,Object> dataMap,String fileName) throws UnsupportedEncodingException {
		//dataMap 要填入模本的数据文件
		//设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库装载,
		//这里我们的模板是放在template包下面
		configuration.setClassForTemplateLoading(this.getClass(), "/com/yitian/um/modules/export");
		Template t=null;
		try {
			//test.ftl为要装载的模板
			t = configuration.getTemplate("project.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");
			//这个地方对流的编码不可或缺,使用main()单独调用时,应该可以,但是如果是web请求导出时导出后word文档就会打不开,并且包XML文件错误。主要是编码格式不正确,无法解析。
			//out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile)));
			 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 void exportWord(@RequestParam("id")final long id) throws UnsupportedEncodingException{
		Map<String,Object> dataMap = projectService.findById(id);
		exportService.createDoc(dataMap,"D:/project.doc");
	} 

/*********************************************************************************************************************************************************************/
 <pre name="code" class="plain"><strong><span style="font-size:18px;">JQuery EasyUI 新开QQ交流群 511830793</span></strong>
<strong><span style="font-size:18px;">
欢迎大家前来与我一起学习,共同进步</span></strong>

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值