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 吧!

本文環境

$ pip install docxtpl

docxtpl 簡介

docxtpl 可以用與 Jinja2 相似的語法,將 docx 檔變成樣板,例如下圖:

docxtpl-demo-1.png

然後,我們可以寫 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-demo-2.png

總結

docxtpl 不僅僅只是提供文字樣板的功能,你也能用它畫表格、放入圖片、置入連結等等,其實該有的基本需求都有達到,蠻值得使用的!

你也像我一樣需要應付來自公家機關的 docx work 嗎?用 docxtpl 吧!

References

Welcome to python-docx-template’s documentation! — python-docx-template 0.9.x documentation

對抗久坐職業傷害

研究指出每天增加 2 小時坐著的時間,會增加大腸癌、心臟疾病、肺癌的風險,也造成肩頸、腰背疼痛等常見問題。

然而對抗這些問題,卻只需要工作時定期休息跟伸展身體即可!

你想輕鬆改變現狀嗎?試試看我們的 PomodoRoll 番茄鐘吧! PomodoRoll 番茄鐘會根據你所設定的專注時間,定期建議你 1 項辦公族適用的伸展運動,幫助你打敗久坐所帶來的傷害!

贊助我們的創作

看完這篇文章了嗎? 休息一下,喝杯咖啡吧!

如果你覺得 MyApollo 有讓你獲得實用的資訊,希望能看到更多的技術分享,邀請你贊助我們一杯咖啡,讓我們有更多的動力與精力繼續提供高品質的文章,感謝你的支持!