需要建立具有動態內容的 Word 文件並自動化該過程? Python 和 python-docx-template
函式庫提供了一個有效的解決方案。 本教學示範如何動態產生Word文檔,無需手動更新。
讓我們用發票範例來說明。 處理來自 API 的資料時,手動更新發票資料既乏味又不切實際。動態生成解決了這個問題。
考慮一個 Word 文件範本:
公司詳細資料和項目清單經常發生變化。 動態生成處理這種可變性。
要實現此目的,請修改 Jinja2 相容性範本。 Jinja2 的模板功能(條件渲染、循環)可根據提供的資料進行動態填充。
- 了解更多關於Jinja2的資訊:https://www.php.cn/link/7ef6c2494e3925e414c7730d6455b50f
Jinja2 相容範本如下圖所示:
Jinja2 語法(例如 {% if %}
和 {% for %}
)最初可能看起來很複雜,但它提供了強大的控制。 {{ }}
中的表達式表示運行時填充的變數。 例如,{% if items %}
在渲染表行之前檢查 items
變數是否存在。 {% for item in items %}
迭代 items
列表,為每個項目產生一行。
- 了解更多 Jinja2 標籤:https://www.php.cn/link/a3a8185b610d2c5e39015f64972c8705和https://www.php.cn/link/7ef6c2494e3925e414c7730d6455b50f
現在,讓我們建立一個 FastAPI 伺服器來使用 Python 渲染模板。
-
建立虛擬環境:
pip3 install virtualenv virtualenv -p python3 venv source venv/bin/activate
-
安裝庫:
pip install "fastapi[standard]" docx docxtpl pydantic requests
-
建立
main.py
:從基本的FastAPI端點開始:from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"Hello": "World"}
訪問
localhost:8000
應回傳{"Hello": "World"}
。 -
匯入 Jinja2 範本:將修改後的
invoice_tpl.docx
放在專案根目錄中。 -
增強
main.py
:以下程式碼處理範本渲染、影像取得與總量計算:pip3 install virtualenv virtualenv -p python3 venv source venv/bin/activate
-
測試端點:將 JSON 負載(類似原文中的範例)傳送到
/
端點。 -
輸出範例:(此處將包含原文中的圖像)
結論:本教學示範了使用 python-docx-template
和 FastAPI 產生動態 Word 文件。 Jinja2 和 FastAPI 的結合創建了一個用於自動化文件創建的靈活系統。 未來的部落格文章(第 2 部分)將介紹 PDF 生成。
儲存庫:https://www.php.cn/link/1df146af0948a68b1342ce39907668fe
關注 Husein Kantarci:
- 個人作品集:huseink.dev
- 領英:https://www.php.cn/link/50de294b9d4987a3c89b4a5cc4bdea62
- GitHub:https://www.php.cn/link/f2f9990bcda13be8771d656bf489dad5
- GitLab:https://www.php.cn/link/33bd1b801b3cf1b8eaf31d816bca2c95
請記得將佔位符圖像 URL 替換為實際圖像 URL。 程式碼也假設您已定義必要的資料模型(Company、BankInformation、Item、VatInformation、InvoiceContext),如原始範例所示。
以上是使用 Python 和 FastAPI 自動建立 Word 文件(使用 python-docx-template)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Linux終端中查看Python版本時遇到權限問題的解決方法當你在Linux終端中嘗試查看Python的版本時,輸入python...

本文解釋瞭如何使用美麗的湯庫來解析html。 它詳細介紹了常見方法,例如find(),find_all(),select()和get_text(),以用於數據提取,處理不同的HTML結構和錯誤以及替代方案(SEL)

Python的statistics模塊提供強大的數據統計分析功能,幫助我們快速理解數據整體特徵,例如生物統計學和商業分析等領域。無需逐個查看數據點,只需查看均值或方差等統計量,即可發現原始數據中可能被忽略的趨勢和特徵,並更輕鬆、有效地比較大型數據集。 本教程將介紹如何計算平均值和衡量數據集的離散程度。除非另有說明,本模塊中的所有函數都支持使用mean()函數計算平均值,而非簡單的求和平均。 也可使用浮點數。 import random import statistics from fracti

本文比較了Tensorflow和Pytorch的深度學習。 它詳細介紹了所涉及的步驟:數據準備,模型構建,培訓,評估和部署。 框架之間的關鍵差異,特別是關於計算刻度的

本文討論了諸如Numpy,Pandas,Matplotlib,Scikit-Learn,Tensorflow,Tensorflow,Django,Blask和請求等流行的Python庫,並詳細介紹了它們在科學計算,數據分析,可視化,機器學習,網絡開發和H中的用途

本文指導Python開發人員構建命令行界面(CLIS)。 它使用Typer,Click和ArgParse等庫詳細介紹,強調輸入/輸出處理,並促進用戶友好的設計模式,以提高CLI可用性。

在使用Python的pandas庫時,如何在兩個結構不同的DataFrame之間進行整列複製是一個常見的問題。假設我們有兩個Dat...

文章討論了虛擬環境在Python中的作用,重點是管理項目依賴性並避免衝突。它詳細介紹了他們在改善項目管理和減少依賴問題方面的創建,激活和利益。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版