日期:2014-05-17  浏览次数:20718 次

freemarker导出word时报出异常求帮助!
上代码先(直接从网上粘的自己稍作修改):

package example;

 

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStreamWriter;

import java.io.Writer;

import java.util.HashMap;

import java.util.Map;

import freemarker.template.Configuration;

import freemarker.template.Template;

import freemarker.template.TemplateException;

 

public class DocumentHandler {

   private Configuration configuration = null;

   public DocumentHandler() {

      configuration = new Configuration();

      configuration.setDefaultEncoding("utf-8");

   }

 

   public void createDoc() {

      // 要填入模本的数据文件

      Map dataMap = new HashMap();

      getData(dataMap);

      // 设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库装载,

      // 这里我们的模板是放在com.havenliu.document.template包下面

      configuration.setClassForTemplateLoading(this.getClass(),
            "/ccc/");

      Template t = null;

      try {

         // test.ftl为要装载的模板

         t = configuration.getTemplate("niuwode.ftl");

         t.setEncoding("utf-8");

      } catch (IOException e) {

         e.printStackTrace();

      }

      // 输出文档路径及名称

      File outFile = new File("E:/test.doc");

      Writer out = null;

      try {

         out = new BufferedWriter(new OutputStreamWriter(

                new FileOutputStream(outFile), "utf-8"));

 

      } catch (Exception e1) {

         e1.printStackTrace();

      }

      try {

         t.process(dataMap, out);

         out.close();

      } catch (TemplateException e) {