基于模板替换的word文档自动生成
簡介
word文檔自動生成程序是一個根據用戶提供的模板word文檔以及一些必要的數據文件來渲染生成所要的word文檔的工具。
關鍵詞:批量word文檔生成、word文檔渲染、自動生成word
使用場景:
幾種典型的可以采用該工具減少工作量和增加效率的場景。
(1)需要批量生成大量內容基本相同,僅少數信息有差別的word文檔。例如生成大量員工的合同、工資單等;
(2)需要在word文檔中插入某種指定的大量的數據,手動插入這些數據非常耗時;
(3)需要多次生成一類word文檔,每次的word文檔僅指定的數據內容改變,其他總體格式保持不變;
(4)根據實驗數據等生成word報告,實驗數據會發生變化,報告內容大體不變,每次有新的實驗數據就需要重新寫word報告;
(5)需要在word報告中批量插入大量的圖片或者表格,圖片在單獨的目錄下能按規則準備好,或者表格中的數據在excel中已經準備好。
使用方法:
用戶準備word模板文件,并命名為template.docx
用戶編寫標簽-內容文件,命名為labels.txt
將所有的附加依賴的數據文件,以及template.docx和labels.txt全部放在工作目錄下
cmd窗口中執行程序
autoWord.exe 工作目錄
例如執行程序所給樣例:通用示例
在autoWord.exe程序和通用示例文件夾在同一個目錄的情況下,在命令行窗口中執行
autoWord.exe ?通用示例
或者指定通用示例文件夾所在的絕對路徑
autoWord.exe? C:\\mytest\通用示例
由于本程序在命令行窗口中執行,無需界面操作,因此可供開發者在程序中調用,實現批量自動調用該工具。
本程序提供了多個樣例供參考使用,參照用例的labels.txt和template.docx以及生成的product.word可以快速理解使用方法。
關于標簽-內容文件labels.txt
它是由用戶編寫的,記錄word中標記的標簽,以及數據文件中要替換成的數據內容的文檔。
labels.txt的編寫需要遵守嚴格的規則。
關于模板word文檔
用戶用指定的規則符合在模板word文檔中標記一些需要實際替換的文字或圖片,表格等數據,這些標記將在程序執行后被替換成labels.txt中指定的內容。
參考樣例
word的模板文檔樣例
詳見:(272條消息) word文檔-樣例1-模板文檔_xiyangxiaoguo的博客-CSDN博客
生成的word文檔樣例
詳見:(272條消息) word文檔-樣例1-結果文檔_xiyangxiaoguo的博客-CSDN博客
labels.txt
?如下文檔:
#標簽--內容對應文檔 #==================標簽解釋====================== #標簽不僅可以在Word模板中定義使用,也可以作為中間量在其他的標簽中使用 #符號{{}}為內部標記,<>為屬性標記,屬性標記都是可以缺省的,[]和[[]]為數組標記,()為數組截取部分 ##為行注釋,#后面的內容將不被讀取,常用于忽略某個標簽 #:標簽名 表示引用一個已經定義的標簽的內容 #:.結構體成員名 表示引用一個結構體的某個成員的內容 #=值 表示使用一個具體的值#以下標簽頭為特定含義的標簽,用戶需要嚴格遵循其語義使用 #image_**表示圖片類標簽 #array_**表示數組類標簽 #pageSeparatedTable_**長表格標簽 #table_**普通表格標簽 #struct_** 多種復合內容塊標簽 #-----------------------------------------------#普通文字替換標簽 title={{機械工業}} testSentence={{當前語句將放入目標文檔標記處}} tableCaption1={{核天體物理學}} header={{核反應率}} absorb1={{核燃料1}} absorb2={{核燃料2}} struct1={{核反應堆1}} struct2={{核反應堆2}} what={{中子}} who={{光子}} para2={{中子通量密度}} subpara2={{核反應率}} subsubpara2={{多普勒效應或多普勒展寬}} dopulo={{多普勒展寬}} alada={{pg,yd}} zhoudeshi={{lualu}} id={{100}} chibu={{xxxxxxxxxx yyyyyyyyyy}} caption_label1={{這是一個行數目非常多的表格}}#圖片標簽 #屬性標簽:height圖片高度,width圖片寬度 image_xx={{chart.png<height=50,width=100>}} image_yy={{chart.png<height=50,width=50>}} imageCaption_yy={{這是一個自動插入的圖題注}}#數組類型的數據 array_xx={{[['baba','caca','dili'],[1,2,3],[4,5,6],[1,2,3],[4,5,6],[1,2,3],[4,5,6],[1,2,3],[4,5,6]]}} array_h1={{['baba','caca','dili']}} array_h2={{['序號','蘋果','梨']}}#文件類型的數據 #文件類型的數據將自動讀取出來并且把內容轉化為普通文本標簽,數組等類型 file_xx={{xyz.csv}} #csv和xlsx格式的文件將讀取成為二維的數組類型 file_xyz={{xyz.xlsx}}array_mp={{:file_xx}}#長表格標簽--長表格需要將表格拆解成多頁,每頁單獨一個題注 #屬性標簽:horizontal_header水平表頭,vertical_header垂直表頭,caption題注,rows_perPage每頁的行限制,usePageIndex使用分頁指引(1/10)-當前頁/總共頁 pageSeparatedTable_xx={{:array_xx<horizontal_header:array_h1,caption:caption_label1,rows_perPage=4,usePageIndex=True>}} #普通表格標簽 table_xx={{:array_xx}}table_reflect={{:array_xx<horizontal_header:array_h2>}} array_mab={{:array_mp}} #用array_**類型去存信息 array_kids={{[['這是第一個子表格','chart.png','圖1','zhanghong','2023-01','PJ-RBDD'],['這是第一個子表格','chart.png','圖2','liming','2023-01','PJ-RBDX']]}} array_mem={{['label','image_1','title','author','date','code']}}#用struct_**類型去解析復合的內容塊信息 #屬性標簽:members內容塊的項目成員, #對于項目成員中的類型為圖片的,請使用image_開頭的名字作為該項目成員的名字,如image_apple struct_kids={{:array_kids<members:array_mem>}} #用戶可以在Word文檔中通過 struct_kids.label去使用相應內容塊的子內容程序獲取地址
鏈接:https://pan.baidu.com/s/1RXA5JzUb9fmB-EnwFWd8CA?pwd=ptty?
提取碼:ptty
總結
以上是生活随笔為你收集整理的基于模板替换的word文档自动生成的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MAC版本subline text快捷键
- 下一篇: 软件工程结课论文 敏捷开发在软件工程中的