回覆列表
  • 1 # 愛逗的小夥伴

    將要匯出的Word另存為xml格式的檔案,開啟xml 在其中新增freemarker標籤,然後另存為outChairDoc.ftl檔案.

    第一步要加入Freemarker.jar包。

    Servlet程式碼如下:在outChairDoc.ftl放在包cn.skyclass.jiaowu.freemarker.template下

    public void doGet(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

    configuration = new Configuration();

    configuration.setDefaultEncoding("utf-8");

    try {

    createDoc(response);

    } catch (Exception e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    public void createDoc(HttpServletResponse response) throws Exception {

    // 要填入模本的資料檔案

    Map dataMap = new HashMap();

    dataMap.put("docTitle", "fdfdfdfdfdfdf使用者資訊");

    List list = new ArrayList();

    ChairInfo chairInfo = new ChairInfo();

    chairInfo.setChairTitle("dfdfd");

    chairInfo.setTeacherName("tea");

    chairInfo.setStartTime(new Date());

    chairInfo.setPlace("dfdfd");

    list.add(chairInfo);

    dataMap.put("chairInfoList", list);

    // 設定模本裝置方法和路徑,FreeMarker支援多種模板裝載方法。可以重servlet,classpath,資料庫裝載,

    // 這裡我們的模板是放在com.havenliu.document.template包下面

    configuration.setClassForTemplateLoading(this.getClass(),

    "/cn/skyclass/jiaowu/freemarker/template");

    Template t = null;

    try {

    // test.ftl為要裝載的模板

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

    t.setEncoding("utf-8");

    } catch (IOException e) {

    e.printStackTrace();

    }

    // 輸出文件路徑及名稱

    String fileName="講座列表.doc";

    response.setContentType("application/msword");

    response.addHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName, "UTF-8"));//可防止匯出的檔案亂碼

    response.setCharacterEncoding("utf-8");

    PrintWriter out = response.getWriter();

    t.process(dataMap, out);

    out.close();

    }

  • 中秋節和大豐收的關聯?
  • 有人說收藏奇石在收藏品中的風險是最低的,你認可嗎?