簡體   English   中英

Python 迭代地將 docx 模板渲染到文件

[英]Python iteratively rendering docx templates to files

我正在嘗試編寫一個自動為我創建文檔的代碼。 我正在使用 python-docx 在 docx 模板中填寫值。 我在這個特定部分有問題。 我希望它能夠工作,以便在每個單詞 doc 上,無論我生成多少文檔,'DN' 值都會增加 1。

例如,如果我想要的文檔批次是批次 123,並且我想要該文檔的 4 個單獨副本,我想要來自“DN”的以下內容:

123-1、123-2、123-3、123-4、

相反,我得到以下信息:

123-1、123-1、123-1、123-1、

此代碼適用於底部用於保存文件名的部分,這只是字典部分的問題。 如果有人可以提出一種方法來完成這項工作,將不勝感激。

for i in range(0, int(number_of_docs)):
    Enters = {
        'DN': f'{doc_number}-{+i + 1}',
        'Quantity': number_of_docs,
        'Date': date,
             }

    PN_doc.render(Enters)
    PN_doc.save(f"{doc_number}-{+i + 1}.docx")

所以 Object 組合應該按照您實現它的方式工作。 對於文檔:(也許有一種復制模板的巧妙方法 - 我不知道任何)。 只需為每次迭代實例化它也應該完成這項工作

from docxtpl import DocxTemplate

# number_of_docs = ...
# doc_number = ...
# date = ...

for i in range(int(number_of_docs)):
    Enters = {
        "DN": f"{doc_number}-{i+1}",
        "Quantity": number_of_docs,
        "Date": date
    }
    PN_doc = DocxTemplate("your_template.docx")
    PN_doc.render(Enters)
    PN_doc.save(f"{doc_number}-{i+1}.docx")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM