Word Template with Python
Last updated
Last updated
相信在大家的工作生涯當中,在一般的辦公室中最常用到的三寶應該就是Word、Excel與PowerPoint吧?像我過去在金融業,常常相關文件與簽呈等內容都必須使用Word來處理格式,以符合老人們喜歡的八股模式,相當多是需要人工排版再複製貼上,不同部門中這種重複枯燥的工作的比重不同,通常比重高的部門的可取代性高且人員素質較低,我曾經看過一整個部門都在做這種工作......,從業人員的科技技能真的應該增加。
大家比較常看到的是python-doc,python-doc可以透過Python從零到一地建立並編寫一份Word文件,由上而下線性的建立起來,但不免的到時候某些東西還是需要人工調整,所以我必較少使用python-doc。
取而代之的是透過人工建立文件格式後,在Word文件中放入變數,到時候使用Python與Jinja2來渲染這份文件反而是更為方便直覺的,尤其像金融業有相當多既有格式的文件,這時候就不需要重新刻一個,只需要將相關參數的位置留好即可。
首先我們先建立一個Word文件,並將你需要的格式先建立完成,之後我就會從這個版型做為模組帶入參數或延伸。
接下來就可以將我們要的變數利用Jinja2的語法插入,像是下圖中,利用兩組大括弧包起來,裡面放數變數名稱。
執行以上程式後就可以看到在相對目錄下產生了一個Warrant01.docx的檔案,打開來看就是已經將變數導入Word文件後的成品了,是不是很簡單呢?
常常我們要輸出的東西絕對不止一個表格,而是可能從資料庫中抓取出來的一大堆參數,這時候就可以利用Jinja2的迴圈來一次產出多個表格。
可以看到在表格的上下多了幾行,我想要一次產生十次一樣內容的表格,就可以直接加上這幾行,實際使用上則可以建立一個dict丟回context,透過一層一層的拆解,就可以批次產生囉!
實際狀況就像是這樣,是不是非常簡單且直覺呢?想查看完整的功能請自行查找python-docx-template官方文件。