java匯出word模板
阿新 • • 發佈:2019-02-03
專案中,可能會有很多地方需要匯出word模板,首先,你需要有模板,然後,模板另存為xml格式。
注意,裡面的package com; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStreamWriter; import java.io.Writer; import java.util.HashMap; import java.util.Map; import freemarker.cache.FileTemplateLoader; import freemarker.cache.TemplateLoader; import freemarker.template.Configuration; import freemarker.template.Template; public class CreateWord { public static void main(String[] args) { Map<String, Object> cont = new HashMap<String, Object>();// 儲存資料 Configuration cfg = new Configuration(); TemplateLoader templateLoader = null; try { //模板的路徑 File fir = new File("W:/test/wswhr/"); //生成檔案的路徑及檔名。 File outFile = new File("W:/test/wswhr/委託創作合同.doc"); Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "UTF-8")); // 使用FileTemplateLoader //制定模板路徑 templateLoader = new FileTemplateLoader(fir);// String tempname = "委託創作合同.xml"; cfg.setTemplateLoader(templateLoader); Template t = cfg.getTemplate(tempname, "UTF-8"); t.process(cont, out); out.flush(); out.close(); } catch (Exception e) { e.printStackTrace(); } } }
cfg.setTemplateLoader(templateLoader);
這一句,是指定模板所在目錄。
如果只是執行一些測試類,或者本地main方法可以用這個。
如果是在線上伺服器,請用下面的程式碼來制定模板路徑。
//建立配置例項 Configuration configuration = new Configuration(); //設定編碼 configuration.setDefaultEncoding("UTF-8"); //ftl模板檔案統一放至 com.lun.template 包下面 configuration.setClassForTemplateLoading(WordUtil.class, "/cn/digitalpublishing/templates/"); //獲取模板 Template template = configuration.getTemplate(templateName);
這裡的,制定模板路徑的方法是,setClassForTemplateLoading.
望文生義也知道,根據指定的class檔案,去找對應的目錄載入模板。