您的位置:首页 > 编程语言 > Java开发

JAVA WEB 导出 Word

2015-10-26 17:52 441 查看
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>


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  word java java web