欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python利用python-docx實(shí)現(xiàn)自動(dòng)生成Word文檔

 更新時(shí)間:2025年07月06日 08:16:12   作者:站大爺IP  
在數(shù)字化辦公場(chǎng)景中,Word 文檔自動(dòng)化生成能顯著提升工作效率,本文通過(guò)實(shí)戰(zhàn)案例,系統(tǒng)講解如何利用 python-docx 庫(kù)實(shí)現(xiàn)從基礎(chǔ)文檔創(chuàng)建到復(fù)雜格式控制的完整流程,希望對(duì)大家有所幫助

?引言

在數(shù)字化辦公場(chǎng)景中,Word 文檔自動(dòng)化生成能顯著提升工作效率。本文通過(guò)實(shí)戰(zhàn)案例,系統(tǒng)講解如何利用 python-docx 庫(kù)實(shí)現(xiàn)從基礎(chǔ)文檔創(chuàng)建到復(fù)雜格式控制的完整流程,涵蓋標(biāo)題、段落、表格、圖片等核心元素的自動(dòng)化處理技巧。

一、環(huán)境準(zhǔn)備與基礎(chǔ)操作

1.1 庫(kù)安裝與導(dǎo)入

pip install python-docx
from docx import Document
from docx.shared import Pt, Inches
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT

1.2 創(chuàng)建空白文檔

doc = Document()

二、核心元素操作實(shí)戰(zhàn)

2.1 標(biāo)題與段落處理

多級(jí)標(biāo)題創(chuàng)建:

doc.add_heading('一級(jí)標(biāo)題', level=1)
doc.add_heading('二級(jí)標(biāo)題', level=2)

格式化段落:

p = doc.add_paragraph('設(shè)置格式的段落')
run = p.runs[0]
run.bold = True
run.font.size = Pt(14)
p.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER

2.2 表格自動(dòng)化生成

動(dòng)態(tài)表格創(chuàng)建:

table = doc.add_table(rows=1, cols=3)
table.style = 'Table Grid'
hdr_cells = table.rows[0].cells
hdr_cells[0].text = '姓名'
hdr_cells[1].text = '部門(mén)'
hdr_cells[2].text = '工資'
 
data = [("張三", "財(cái)務(wù)部", "8000"), ("李四", "人事部", "7500")]
for item in data:
    row_cells = table.add_row().cells
    row_cells[0].text = item[0]
    row_cells[1].text = item[1]
    row_cells[2].text = item[2]

2.3 圖片插入與控制

精準(zhǔn)尺寸控制:

doc.add_picture('logo.png', width=Inches(2.0))

三、高級(jí)格式控制技巧

3.1 段落格式深度定制

縮進(jìn)與間距設(shè)置:

p.paragraph_format.left_indent = Inches(0.5)
p.paragraph_format.right_indent = Pt(24)
p.paragraph_format.space_after = Pt(12)

制表位應(yīng)用:

tab_stops = p.paragraph_format.tab_stops
tab_stop = tab_stops.add_tab_stop(Inches(1.5), WD_TAB_ALIGNMENT.RIGHT, WD_TAB_LEADER.DOTS)

3.2 字符級(jí)樣式控制

字體效果組合:

run = p.add_run('高級(jí)格式示例')
run.font.name = '微軟雅黑'
run.font.size = Pt(16)
run.font.color.rgb = RGBColor(0x00, 0x66, 0xcc)
run.font.underline = WD_UNDERLINE.DOUBLE

四、實(shí)戰(zhàn)場(chǎng)景解析

4.1 模板填充自動(dòng)化

合同文檔生成:

def fill_template(template_path, output_path, context):
    doc = Document(template_path)
    for para in doc.paragraphs:
        for key, val in context.items():
            if f'{{{{{key}}}}}' in para.text:
                para.text = para.text.replace(f'{{{{{key}}}}}', str(val))
    doc.save(output_path)
 
context = {
    "contract_no": "HT2024060101",
    "party_a": "上海科技有限公司",
    "amount": 35000
}
fill_template("contract_template.docx", "output.docx", context)

4.2 批量文檔生成

Excel驅(qū)動(dòng)生成:

import pandas as pd
 
df = pd.read_excel('employees.xlsx')
for index, row in df.iterrows():
    doc = Document()
    doc.add_heading(f'員工檔案-{row["編號(hào)"]}', level=1)
    doc.add_paragraph(f'姓名:{row["姓名"]}')
    doc.add_paragraph(f'部門(mén):{row["部門(mén)"]}')
    doc.save(f'archives/{row["編號(hào)"]}.docx')

五、性能優(yōu)化與最佳實(shí)踐

5.1 樣式復(fù)用策略

全局樣式定義:

styles = doc.styles
title_style = styles.add_style('CustomTitle', WD_STYLE_TYPE.PARAGRAPH)
title_font = title_style.font
title_font.name = '微軟雅黑'
title_font.size = Pt(22)

5.2 內(nèi)存優(yōu)化技巧

流式處理大文檔:

doc = Document()
for i in range(1000):
    doc.add_paragraph(f'第{i}條記錄')
    if i % 50 == 0:
        doc.add_page_break()

六、常見(jiàn)問(wèn)題解決方案

中文字體顯示問(wèn)題

from docx.oxml.ns import qn
run._element.rPr.rFonts.set(qn('w:eastAsia'), '宋體')

表格自動(dòng)調(diào)整

table.autofit = False
table.columns[0].width = Inches(1.5)

結(jié)語(yǔ)

通過(guò)系統(tǒng)掌握python-docx的層級(jí)結(jié)構(gòu)控制和樣式管理,可實(shí)現(xiàn)從簡(jiǎn)單報(bào)告到復(fù)雜模板的自動(dòng)化生成。實(shí)際應(yīng)用中需注意文檔結(jié)構(gòu)規(guī)劃、樣式預(yù)定義和異常處理機(jī)制,這些實(shí)踐能顯著提升自動(dòng)化文檔的可靠性和可維護(hù)性。

?到此這篇關(guān)于Python利用python-docx實(shí)現(xiàn)自動(dòng)生成Word文檔的文章就介紹到這了,更多相關(guān)Python python-docx生成Word內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python 捕獲代碼中所有異常的方法

    Python 捕獲代碼中所有異常的方法

    這篇文章主要介紹了Python 捕獲代碼中所有異常的方法,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • python進(jìn)行圖片相似度對(duì)比的兩種實(shí)現(xiàn)方法

    python進(jìn)行圖片相似度對(duì)比的兩種實(shí)現(xiàn)方法

    Python提供了一些庫(kù)和工具可以用于圖片的相似度比對(duì),本文就詳細(xì)的介紹了兩種實(shí)現(xiàn)方法,感知哈希和結(jié)構(gòu)相似性,下面就來(lái)介紹一下,感興趣的可以了解一下
    2023-10-10
  • 關(guān)于Python的pymouse click 雙擊的問(wèn)題

    關(guān)于Python的pymouse click 雙擊的問(wèn)題

    這篇文章主要介紹了關(guān)于Python的pymouse click 雙擊的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • django rest framework使用django-filter用法

    django rest framework使用django-filter用法

    這篇文章主要介紹了django rest framework使用django-filter用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • python之?dāng)?shù)字圖像處理方式

    python之?dāng)?shù)字圖像處理方式

    這篇文章主要介紹了python之?dāng)?shù)字圖像處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 使用pycharm進(jìn)行繪圖,圖片無(wú)法顯示的解決

    使用pycharm進(jìn)行繪圖,圖片無(wú)法顯示的解決

    這篇文章主要介紹了使用pycharm進(jìn)行繪圖,圖片無(wú)法顯示的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Python實(shí)現(xiàn)自動(dòng)記錄復(fù)制的文本并保存

    Python實(shí)現(xiàn)自動(dòng)記錄復(fù)制的文本并保存

    這篇文章主要為大家詳細(xì)介紹了如何使用Python開(kāi)發(fā)一個(gè)小工具,可以實(shí)現(xiàn)記錄你復(fù)制的文本內(nèi)容并自動(dòng)保存,這樣就再也不怕搞丟靈感或者代碼段啦
    2025-04-04
  • Django開(kāi)發(fā)的簡(jiǎn)易留言板案例詳解

    Django開(kāi)發(fā)的簡(jiǎn)易留言板案例詳解

    這篇文章主要介紹了Django開(kāi)發(fā)的簡(jiǎn)易留言板,結(jié)合實(shí)例形式詳細(xì)分析了基于Python框架Django開(kāi)發(fā)留言板的具體文件結(jié)構(gòu)、流程步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2018-12-12
  • 使用python讀寫(xiě)txt和json(jsonl)大文件的方法步驟

    使用python讀寫(xiě)txt和json(jsonl)大文件的方法步驟

    在Python中讀取txt和json(jsonl)大文件并保存到字典是一項(xiàng)非常常見(jiàn)的操作,這篇文章主要給大家介紹了關(guān)于使用python讀寫(xiě)txt和json(jsonl)大文件的方法步驟,需要的朋友可以參考下
    2023-12-12
  • 如何使用python批量修改文本文件編碼格式

    如何使用python批量修改文本文件編碼格式

    把文本文件的編碼格式進(jìn)行批量幻化,比如ascii, gb2312, utf8等,相互轉(zhuǎn)化,字符集的大小來(lái)看,utf8>gb2312>ascii,因此最好把gb2312轉(zhuǎn)為utf8,否則容易出現(xiàn)亂碼,這篇文章主要介紹了如何使用python批量修改文本文件編碼格式,需要的朋友可以參考下
    2023-03-03

最新評(píng)論