`

java 到处word

 
阅读更多

package com.run.wzgl.utils;

 

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileOutputStream;

import java.io.OutputStreamWriter;

import java.io.Writer;

import java.net.URLEncoder;

import java.util.Map;

 

import javax.servlet.ServletContext;

import javax.servlet.http.HttpServletResponse;

 

import org.apache.commons.fileupload.util.mime.MimeUtility;

 

import freemarker.template.Configuration;

import freemarker.template.DefaultObjectWrapper;

import freemarker.template.Template;

import freemarker.template.TemplateExceptionHandler;

public class DocUtil {

 

 

       private Configuration configure = null;

       public DocUtil(){

              configure= new Configuration();

              configure.setDefaultEncoding("utf-8");

       }

       /**

        * 根据Doc模板生成word文件

        * @param dataMap Map 需要填入模板的数据

        * @param fileName 文件名称

        * @param savePath 保存路径

        */

       public void createWord(Map<String, Object> dataMap, String downloadType, String savePath){

              try{

                     //加载需要装填的模板

                     Template template  = null;

                     //加载模板文件

                     configure.setClassForTemplateLoading(this.getClass(),"/templet");

                     //设置对象包装器

                     configure.setObjectWrapper(new DefaultObjectWrapper());

                     //设置异常处理器

                     configure.setTemplateExceptionHandler(TemplateExceptionHandler.IGNORE_HANDLER);

                     //定义Template对象,注意模板类型名字与downloadType要一致

                     template= configure.getTemplate(downloadType + ".xml");

                     //输出文档

                     File outFile = new File(savePath);

                     Writer out = null;

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

                     template.process(dataMap,out);

                     out.flush();   

                     out.close();   

              }catch (Exception e) {

                     e.printStackTrace();

              }

       }

       

       /**

        * 根据Doc模板生成word文件

        * @param dataMap Map 需要填入模板的数据

        * @param fileName 文件名称

        * @param savePath 保存路径

        */

       public void createDoc(Map<String, Object> dataMap, String downloadType, String fileName,HttpServletResponse resp){

              try{

                     //加载需要装填的模板

                     Template template  = null;

                     //加载模板文件

                     configure.setClassForTemplateLoading(this.getClass(),"/templet");

                     //设置对象包装器

                     configure.setObjectWrapper(new DefaultObjectWrapper());

                     //设置异常处理器

                     configure.setTemplateExceptionHandler(TemplateExceptionHandler.IGNORE_HANDLER);

                     //定义Template对象,注意模板类型名字与downloadType要一致

                     template= configure.getTemplate(downloadType + ".xml");

                     //输出文档

                     resp.setContentType("application/vnd.ms-word;charset=UTF-8");

                     resp.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(fileName+".doc", "UTF-8"));  

                     Writer out = null;

                     out= new BufferedWriter(new OutputStreamWriter(resp.getOutputStream(),"utf-8"));                                   

                     template.process(dataMap,out);

                     out.flush();   

                     out.close();   

              }catch (Exception e) {

                     e.printStackTrace();

              }

       }

       

}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics