Python 好用套件 - docxtpl 把 docx 文件檔變樣板(template)
Posted on Sep 3, 2023 in Python 模組/套件推薦 by Amo Chen ‐ 1 min read
遙想以前在公家機關工作時,不管什麼部門都很喜歡設計各式各樣的 docx 檔,例如用 docx 檔做例行性的報表,每天填完之後寄去給上一層的部門進行彙整,這些東西做久了就會覺得無趣,後來我就用 VBA 把 docx 檔變成樣板,裡面有著一堆可以填充文字的 placeholder, 只要執行 VBA 就可以自動產生新的 docx 檔,把分分鐘的事情變成秒秒鐘。
不過 VBA 畢竟還是沒 Python 可愛宜人,不要再用 VBA 了,能夠用 Python 解決的,都要用 Python 解!卍解!
直接交給 Python 套件 docxtpl 吧!
本文環境
- Python 3
- docxtpl
$ pip install docxtpl
docxtpl 簡介
docxtpl 可以用與 Jinja2 相似的語法,將 docx 檔變成樣板,例如下圖:
然後,我們可以寫 Python 把值給填進去,並另存成新的 docx 檔,例如:
from datetime import date
from docxtpl import DocxTemplate
doc = DocxTemplate('每日造訪人數.docx')
today = date.today().strftime('%Y-%m-%d')
context = { 'date': today, 'num' : '1024', }
doc.render(context)
doc.save(f'每日造訪人數-{today}.docx')
執行成功之後,會多一個 每日造訪人數-
開頭的檔案,裏面就是填完值的結果:
總結
docxtpl 不僅僅只是提供文字樣板的功能,你也能用它畫表格、放入圖片、置入連結等等,其實該有的基本需求都有達到,蠻值得使用的!
你也像我一樣需要應付來自公家機關的 docx work 嗎?用 docxtpl 吧!
References
Welcome to python-docx-template’s documentation! — python-docx-template 0.9.x documentation