python的docx模塊處理word


安裝docx模塊

pip3 install python-docx

讀取word整文

from docx import Document
doc=Document("./a.docx")
for p in doc.paragraphs:
    print(p.text)

簡單實例1

# word_1.py

# 導入庫
from docx import Document
from docx.shared import Pt
from docx.shared import Inches
from docx.oxml.ns import qn

# 新建空白文檔
doc1 = Document()

# 新增文檔標題
doc1.add_heading('如何使用 Python 創建 Word',0)

# 創建段落描述
doc1.add_paragraph('我們平時使用 Word 用來做文章的處理,可能沒想過它可以用 Python 生成,下面我們就介紹具體如何操作……')

# 創建一級標題
doc1.add_heading('安裝 python-docx 庫',1)

# 創建段落描述
doc1.add_paragraph('現在開始我們來介紹如何安裝 python-docx 庫,具體需要以下兩步操作:')

# 創建二級標題
doc1.add_heading('第一步:安裝 Python',2)

# 保存文件
doc1.save('word1.docx')

查看效果

 

 

簡單實例2

對“表揚信.docx”文檔進行修改,需要修改的地方已在圖中標記出。

  1. 第一個箭頭處,首行縮進2字符
  2. 第二個箭頭處,對段落進行左縮進2字符,並添加“向小z同學學習!”
  3. 第三個和第四個箭頭處,進行右對齊,並右縮進2cm
  4. 趙東來,修改為小z
  5. 陸亦可,修改為大Z
  6. 她,修改為他
  7. 狗糧,修改為貓糧

 

代碼如下

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的正則表達式,可以很簡單地實現文本的替換和查找。
text=re.sub('陸亦可','大Z',paragraphs[2].text)
text=re.sub('','',text)
paragraphs[2].text=text
# 在第四段后面加上
paragraphs[3].add_run("向小z同學學習!")
# 修改表格里面的內容
tables=document.tables
tables[0].cell(1,0).text="貓糧"
tables[0].cell(2,0).text="貓糧"
tables[0].cell(3,0).text="貓糧"
# 插入一張圖片,圖片寬度設置為11.8cm
document.add_picture('fun.jpg', width=Cm(11.8))
document.save()

修改后效果

 

 

簡單實例3

from docx import Document
import time
import re

# 讀取模板文件
doc_zh = Document("/auto/data/綜合平台應用層點檢早報.docx")
doc_wl = Document("/auto/data/物流平台應用層點檢報告.docx")


# 變量定義
today_time = time.strftime("%Y/%m/%d", time.localtime())
today_time2 = time.strftime("%Y%m%d", time.localtime())
# time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
file_name_zh = "綜合平台應用層點檢早報_" + today_time2
file_name_wl = "物流平台應用層點檢報告_" + today_time2

# 修改word
paragraphs_zh = doc_zh.paragraphs
paragraphs_zh[6].text = re.sub('日期',today_time,paragraphs_zh[6].text)
paragraphs_wl = doc_wl.paragraphs
paragraphs_wl[11].text = re.sub('日期',today_time,paragraphs_wl[11].text)

# 保存文件
doc_zh.save("/auto/data_finish/" + file_name_zh + ".docx")
doc_wl.save("/auto/data_finish/" + file_name_wl + ".docx")

print("word_auto finish")

# for p in doc.paragraphs:
#     print(p.text)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM