最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

?引言

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

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

1.1 庫安裝與導入

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()

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

2.1 標題與段落處理

多級標題創(chuàng)建:

doc.add_heading('一級標題', level=1)
doc.add_heading('二級標題', level=2)

格式化段落:

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

2.2 表格自動化生成

動態(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 = '部門'
hdr_cells[2].text = '工資'
 
data = [("張三", "財務部", "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 圖片插入與控制

精準尺寸控制:

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

三、高級格式控制技巧

3.1 段落格式深度定制

縮進與間距設置:

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

制表位應用:

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 字符級樣式控制

字體效果組合:

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

四、實戰(zhàn)場景解析

4.1 模板填充自動化

合同文檔生成:

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ū)動生成:

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

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

5.1 樣式復用策略

全局樣式定義:

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()

六、常見問題解決方案

中文字體顯示問題

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

表格自動調(diào)整

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

結(jié)語

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

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

相關(guān)文章

  • Python 中使用正則表達式轉(zhuǎn)義

    Python 中使用正則表達式轉(zhuǎn)義

    這篇文章主要介紹了Python 正則表達式轉(zhuǎn)義,在 Python 中,正則表達式轉(zhuǎn)義sub()方法用于替換字符串,替換后的字符串由 re 模塊中的 Python 內(nèi)置方法返回,需要的朋友可以參考下
    2023-06-06
  • pyqt5 設置窗體透明控件不透明的操作

    pyqt5 設置窗體透明控件不透明的操作

    這篇文章主要介紹了pyqt5 設置窗體透明控件不透明的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python數(shù)據(jù)結(jié)構(gòu)與算法中的隊列詳解(1)

    Python數(shù)據(jù)結(jié)構(gòu)與算法中的隊列詳解(1)

    這篇文章主要為大家詳細介紹了Python的隊列,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • python對RabbitMQ的簡單入門使用教程

    python對RabbitMQ的簡單入門使用教程

    RabbitMq是實現(xiàn)了高級消息隊列協(xié)議(AMQP)的開源消息代理中間件,下面這篇文章主要給大家介紹了關(guān)于python對RabbitMQ的簡單入門使用,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • Python 實現(xiàn)圖片轉(zhuǎn)字符畫的示例(靜態(tài)圖片,gif皆可)

    Python 實現(xiàn)圖片轉(zhuǎn)字符畫的示例(靜態(tài)圖片,gif皆可)

    這篇文章主要介紹了Python 實現(xiàn)圖片轉(zhuǎn)字符畫的示例,幫助大家更好的利用python進行圖片處理,感興趣的朋友可以了解下
    2020-11-11
  • Python實現(xiàn)最常見加密方式詳解

    Python實現(xiàn)最常見加密方式詳解

    這篇文章主要介紹了Python實現(xiàn)最常見加密方式詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • python委派生成器的具體方法

    python委派生成器的具體方法

    在本篇內(nèi)容中小編給大家整理了一篇關(guān)于python委派生成器的具體方法內(nèi)容,有興趣的朋友們可以學習參考下。
    2022-11-11
  • 使用Python第三方庫發(fā)送電子郵件的示例代碼

    使用Python第三方庫發(fā)送電子郵件的示例代碼

    本文主要介紹了使用Python第三方庫發(fā)送電子郵件的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 淺析python中特殊文件和特殊函數(shù)

    淺析python中特殊文件和特殊函數(shù)

    這篇文章主要介紹了python中特殊文件和特殊函數(shù)的相關(guān)知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • Python實現(xiàn)自動批量修改文件名稱

    Python實現(xiàn)自動批量修改文件名稱

    這篇文章主要為大家詳細介紹了如何基于Python語言,實現(xiàn)按照一定命名規(guī)則批量修改多個文件的文件名的效果,文中的示例代講解詳細,感興趣的可以了解一下
    2023-01-01

最新評論

乐都县| 兰州市| 通榆县| 凤凰县| 潮州市| 澄迈县| 柳江县| 汝南县| 张家港市| 平度市| 崇仁县| 青田县| 抚宁县| 商洛市| 衡南县| 嘉祥县| 湖口县| 娱乐| 南岸区| 虎林市| 金昌市| 宁德市| 买车| 英德市| 凤城市| 鹤岗市| 遂宁市| 霍州市| 迭部县| 象山县| 道孚县| 扎赉特旗| 塔城市| 华蓥市| 芜湖市| 县级市| 广灵县| 上虞市| 丹江口市| 陕西省| 田阳县|