前言
利用Python docx模塊蓬网,可以很方便地打開和修改Word 2007及以后的文檔。本文簡單地介紹了如何使用python修改word文檔中的內(nèi)容醉锅。
例子與代碼
word文檔的內(nèi)容是一封表揚信勤庐,內(nèi)容見下圖:
現(xiàn)在需要通過python對二鳄,”表揚信.docx”文檔進行修改曙搬,需要修改的地方已在圖中標記出摔吏。
- 第一個箭頭處,首行縮進2字符
- 第二個箭頭處纵装,對段落進行左縮進2字符征讲,并添加“向小z同學學習!”
- 第三個和第四個箭頭處橡娄,進行右對齊诗箍,并右縮進2cm
- 趙東來,修改為小z
- 陸亦可挽唉,修改為大Z
- 她滤祖,修改為他
- 狗糧筷狼,修改為貓糧
代碼如下:
from docx import Document
from docx.shared import Cm
from docx.enum.text import WD_ALIGN_PARAGRAPH
import re
document=Document(r"g:\CS\Python Scripts\表揚信.docx")
# 首先對段落格式進行修改,docx默認標題也屬于段落匠童,因此“表揚信”是第一段
paragraphs=document.paragraphs
paragraphs[2].paragraph_format.first_line_indent=Cm(0.74)
paragraphs[3].paragraph_format.left_indent=Cm(0.74)
paragraphs[4].paragraph_format.alignment=WD_ALIGN_PARAGRAPH.RIGHT
paragraphs[4].paragraph_format.right_indent=Cm(2)
paragraphs[5].paragraph_format.alignment=WD_ALIGN_PARAGRAPH.RIGHT
paragraphs[5].paragraph_format.right_indent=Cm(2)
# 對文本進行修改
# 修改第二段
paragraphs[1].text="小Z同學:"
# 將第三段陸亦可替換為大Z埂材,她替換為他。通過python的正則表達式俏让,可以很簡單地實現(xiàn)文本的替換和查找楞遏。
text=re.sub('陸亦可','大Z',paragraphs[2].text)
text=re.sub('她','他',text)
paragraphs[2].text=text
# 在第四段后面加上
paragraphs[3].add_run("向小z同學學習茬暇!")
# 修改表格里面的內(nèi)容
tables=document.tables
tables[0].cell(1,0).text="貓糧"
tables[0].cell(2,0).text="貓糧"
tables[0].cell(3,0).text="貓糧"
# 插入一張圖片首昔,圖片寬度設(shè)置為11.8cm
document.add_picture('fun.jpg', width=Cm(11.8))
document.save()
運行代碼,結(jié)果見下圖:
本文對word文檔中的內(nèi)容主要在如下幾方面進行了修改:
- 段落文字的替換和添加
- 段落排列的對齊和縮進
- 表格文字的修改
- 在文檔中插入圖片
docx模塊功能強大,還支持對word文檔糙俗,字體勒奇、顏色、樣式巧骚、章節(jié)赊颠、分頁符、制表位等的修改劈彪。通過python批量化操作word文檔竣蹦,可以有效地節(jié)省時間,告別繁瑣重復(fù)的工作沧奴。
結(jié)論
通過對word文檔段落痘括、表格和圖片的操作,結(jié)合python的正則表達式滔吠,目前纲菌,可以想到的能實現(xiàn)的功能如下:
- 批量制作word名片浪讳、信件唱捣、通知等(功能與word郵件合并功能類似)
- 對多個文檔的內(nèi)容進行一鍵提取和替換
- 通過docx模塊,python將Excel唤锉、郵件冬骚、網(wǎng)頁椅贱、matplotlib、支持python接口的軟件等資源整合在一起只冻,提取相關(guān)信息庇麦,自動生成word報告
- 在女朋友面前裝逼
后續(xù)有時間,將對docx模塊中的paragraph(段落)属愤、table(表格)等對象進行詳細的介紹女器。
參考資料:
[docx 0.8.6文檔][1]
[1]:https://python-docx.readthedocs.io/en/latest/index.html#api-documentation