天天看點

Python-Docx:Word與Python的完美結合

作者:不秃頭程式員
Python-Docx:Word與Python的完美結合

今天給大家分享Python處理Word的第三方庫:Python-Docx。

什麼是Python-Docx?

Python-Docx是用于建立和更新Microsoft Word(.docx)檔案的Python庫。

日常需要經常處理Word文檔,用Python的免費第三方包:Python-Docx處理docx十分友善。

Python-Docx:Word與Python的完美結合

而且這個包和pandas包結合使用,可以在word插入excel表格,節省了很多複制、粘貼、調整表格樣式的時間,真的很友善!

但是要注意:Python-Docx隻能處理docx、docx、docx檔案!

下面給大家介紹一下如何使用Python-Docx吧,抛磚引玉~

安裝

  • 由于 python-docx 已經送出給 PyPI 倉庫,是以可以使用 pip 安裝,如下:
pip install python-docx           
  • 如果同時安裝了 python2 和 python3 那麼 pip 可能不能用,可以使用 pip3 來安裝,如下:
pip3 install python-docx           

文檔下載下傳

Python-Docx的官網提供了使用文檔:該文檔說明了如何使用Python-Docx的所有功能,并包含完整的API參考。在下載下傳中包含的示例中也很好地展示了Python-Docx的功能。

Python-Docx:Word與Python的完美結合

使用示範

Python-Docx:Word與Python的完美結合

這裡直接用代碼給大家示範,如何生成上圖所示的文檔,内容包含:

  1. 導入python-docx庫
  2. 建立wrod文檔、一級、二級、三級标題、自然段
  3. 設定字型格式
  4. 在指定位置添加圖檔
  5. 在指定位置添加表格
  6. 文檔另存為
以下代碼可以左右滑動,也可以直接複制粘貼喲~!
# 1、導入python-docx庫
from docx import Document
from docx.shared import Inches

document = Document()
document.add_heading('Document Title', 0)

# 2、建立wrod文檔、一級、二級、三級标題、自然段
p = document.add_paragraph('A plain paragraph having some ')

# 3、設定字型格式
p.add_run('bold').bold = True
p.add_run(' and some ')
p.add_run('italic.').italic = True

document.add_heading('Heading, level 1', level=1)
document.add_paragraph('Intense quote', style='Intense Quote')

document.add_paragraph('first item in unordered list', style='List Bullet')
document.add_paragraph('first item in ordered list', style='List Number')

# 4、在指定位置添加圖檔
document.add_picture('monty-truth.png', width=Inches(1.25))

records = (
    (3, '101', 'Spam'),
    (7, '422', 'Eggs'),
    (4, '631', 'Spam, spam, eggs, and spam')
)
# 5、在指定位置添加表格
table = document.add_table(rows=1, cols=3)
hdr_cells = table.rows[0].cells
hdr_cells[0].text = 'Qty'
hdr_cells[1].text = 'Id'
hdr_cells[2].text = 'Desc'
for qty, id, desc in records:
    row_cells = table.add_row().cells
    row_cells[0].text = str(qty)
    row_cells[1].text = id
    row_cells[2].text = desc

document.add_page_break()
# 6、文檔另存為
document.save('demo.docx')           

其他資源

可以在Python-Docx的GitHub頁面上找到更多示例代碼。

https://github.com/python-openxml/python-docx