日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java生成word 框勾_Java 使用模板生成 Word 文件---基于 Freemarker 模板框架

發布時間:2025/3/15 java 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java生成word 框勾_Java 使用模板生成 Word 文件---基于 Freemarker 模板框架 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java項目引入 Freemarker 插件自行完成。

步驟如下:

1、編寫 Word 模板,并將模板中要用代碼動態生成數據用 Freemarker 變量取代,即${變量名},如${username};

2、把該 word 文檔 另存為 xml 文件(格式選擇 Word 2003 XML,注意是另存為,不是改擴展名為 xml),然后再改擴展名為 ftl;

3、用編輯軟件打開最后的 ftl 文件,并用查找功能查找第一步中定義的變量名,如:username,

就會發現 Word 軟件在將 Word 轉為 xml 過程中,在${username}之前插入了很過多余的字符(通常是 Word 中帶有的格式),將第一步中定義的所有變量名全部還原為${變量名} 的格式,即:刪除${username} 插入的多余字符。這步特別重要,直接決定了后面能夠正確將數據落到模板中。

如下圖:${username}? 之間被插入了很多的格式字符,所以需要將黃線部分的字符串刪除。

4、執行代碼,將模板中的變量用數據填充進去

importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.OutputStreamWriter;importjava.io.Writer;importjava.util.HashMap;importjava.util.Map;importfreemarker.template.Configuration;importfreemarker.template.Template;public classFreeMarkerUtils {public static voidmain(String[] args) {try{

Map dataMap = new HashMap();

dataMap.put("clinicName", "愛齒口腔(濱海門診部)");

dataMap.put("username", "張三");

dataMap.put("phone", "23456789876");

dataMap.put("IDNo", "130803299911211789");

dataMap.put("gender", "男");

dataMap.put("birthday", "1998-11-21");

dataMap.put("RightUp", "右上1");

dataMap.put("LeftUp", "左上1");

dataMap.put("RightDown", "右下1");

dataMap.put("LeftDown", "左上1");

dataMap.put("opearationDate", "2019-11-01");

dataMap.put("amountDaXie", "壹佰伍拾元整");

dataMap.put("amount", "150.00");

dataMap.put("currentDate", "2019年11月01日");

dataMap.put("currentDate", "2019年11月01日");

Configuration configuration= newConfiguration();

configuration.setDefaultEncoding("utf-8");//指定模板路徑的第二種方式,我的路徑是D:/ 還有其他方式

configuration.setDirectoryForTemplateLoading(new File("C:/Users/user/Desktop"));//輸出文檔路徑及名稱

File outFile = new File("D:/test.doc");//以utf-8的編碼讀取ftl文件

Template t = configuration.getTemplate("6_種植牙手術意外投保單(4)-2003-3.ftl","utf-8");

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

t.process(dataMap, out);

out.close();

}catch(IOException e) {

e.printStackTrace();

}catch(Exception e) {

e.printStackTrace();

}

}

}

參考:

原文鏈接:

總結

以上是生活随笔為你收集整理的java生成word 框勾_Java 使用模板生成 Word 文件---基于 Freemarker 模板框架的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。