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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于模板替换的word文档自动生成

發布時間:2024/1/8 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于模板替换的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文档自动生成的全部內容,希望文章能夠幫你解決所遇到的問題。

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