天天看點

Python技巧篇:如何巧妙運用Python處理Word文檔

前言

大家好,我是辣條

之前有給大家分享了一篇:《Python執行個體篇:自動操作Excel檔案(既簡單又特别實用)》

根據很多粉絲回報是有用處的,于是乎應廣大群衆号召,今天給大家再來一波Python操作Word文檔,我可是長期更新分享的,訂閱一下我的部落格不會錯的

大家平時在工作與學習中都會操作到Word檔案格式,特别是很多資料的時候,靠人力去識别操作非常容易出錯。今天就帶大家用python來處理Word檔案。

目錄

  • ​​前言​​
  • ​​工具​​
  • ​​生成Word案例​​
  • ​​讀取操作word文檔​​
  • ​​總結:​​

工具

python3.7

Pycharm

Excel

python-docx

生成Word案例

建立一個demo.doc文檔,代碼如下:

from docx import Document
from docx.shared import Cm,Pt
from docx.document import Document as Doc

#建構doc對象
document = Document()

#操作文檔标題
document.add_heading('這是python寫的!',0)

#操作段落文本
p = document.add_paragraph('我喜歡python,因為python可以做許多事情...')
#段落添加内容
run = p.add_run('大家也可以來學習!')
#對run内容加粗
run.bold = True
#設定run字型
run.font.size = Pt(18)

#标題級别設定
document.add_heading('我是一級标題',level=1)

#操作圖檔(圖檔所在路徑)
document.add_picture('劉亦菲.png', width=Cm(5.2))

# 添加有序清單
document.add_paragraph(
    '我是有序清單1', style='List Number'
)
document.add_paragraph(
    '我是有序清單1', style='List Number'
)


# 添加無序清單
document.add_paragraph(
    '我是無序清單1', style='List Bullet'
)
document.add_paragraph(
    '我是無序清單2', style='List Bullet'
)

# 設定表格内容
records = (
    ('孫悟空', '男', '1111-1-1'),
    ('白骨精', '女', '2222-2-2')
)
# 添加表格,rows設定行 cols設定列
table = document.add_table(rows=1, cols=3)
hdr_cells = table.rows[0].cells
#設定列名
hdr_cells[0].text = '姓名'
hdr_cells[1].text = '性别'
hdr_cells[2].text = '出生日期'
# 操作寫入行
for name, sex, birthday in records:
    row_cells = table.add_row().cells
    row_cells[0].text = name
    row_cells[1].text = sex
    row_cells[2].text = birthday

#儲存doc文檔
document.save('demo.docx')      

效果如下:

Python技巧篇:如何巧妙運用Python處理Word文檔

更多屬性設定可以參考官方文檔:https://python-docx.readthedocs.io/en/latest/index.html

讀取操作word文檔

現有文檔如下:

Python技巧篇:如何巧妙運用Python處理Word文檔

讀取代碼:

from docx import Document
from docx.document import Document as Doc

#擷取文檔路徑,循環讀取内容
doc = Document('離職證明.docx')  # type: Doc
for no, p in enumerate(doc.paragraphs):
    print(no, p.text)      

效果如下:

Python技巧篇:如何巧妙運用Python處理Word文檔

如果需要批量操作,則可以使用字典形式組織資料類型,比如name,start_time,end_time,job等,再使用循環寫入檔案即可批量生成該類文檔。

總結: