JAVA WEB 导出 Word

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013008827/article/details/49427695
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>

 
 

猜你喜欢

转载自blog.csdn.net/u013008827/article/details/49427695
今日推荐