目錄
-
- 1. 概述
- 2. 寫入
-
- 2.1 標題
- 2.2 段落
- 2.3 表格
- 2.4 圖片
- 2.5 樣式
- 3. 讀取
1. 概述
Word 是一個十分常用的文字處理工具,通常我們都是手動來操作它,本節我們來看一下如何通過 Python 來操作。
Python 提供了 python-docx
庫,該庫就是為 Word 文檔量身定制的,安裝使用 pip install python-docx
命令即可。
2. 寫入
首先,我們使用 Python 來創建一個 Word 文檔并向其中寫入一些內容。
2.1 標題
我們先來創建 Word 文檔并向其中添加標題,完整實現代碼如下所示:
from docx import Document# 創建文檔
document = Document()
# 標題
document.add_heading('標題0', 0)
document.add_heading('標題1', 1)
document.add_heading('標題2', 2)
# 保存
document.save('test.docx')
看一下效果:
2.2 段落
我們接著向 Word 文檔中添加段落內容,完整實現代碼如下所示:
from docx import Document# 創建文檔
document = Document()
# 標題
document.add_heading('標題0', 0)
document.add_heading('標題1', 1)
# 段落
document.add_paragraph('你們平時Word文檔用的多嗎?')
# 列表
document.add_paragraph('A:我們用的多', style='List Bullet')
document.add_paragraph('B:我們用的少', style='List Bullet')
document.add_paragraph('C:我們用的不多不少', style='List Bullet')
document.add_heading('標題2', 2)
# 段落
document.add_paragraph('我平時基本都是手動操作Word文檔,現在打算利用Python來操作它,''你們平時是手動操作Word文檔?如果是的話,一起來了解下如何通過''Python來操作吧!')
# 保存
document.save('test.docx')
看一下效果:
2.3 表格
我們接著向文檔中插入表格,完整實現代碼如下所示:
from docx import Document# 創建文檔
document = Document()
# 標題
document.add_heading('標題0', 0)
document.add_heading('標題1', 1)
# 段落
document.add_paragraph('你們平時Word文檔用的多嗎?')
# 列表
document.add_paragraph('A:我們用的多', style='List Bullet')
document.add_paragraph('B:我們用的少', style='List Bullet')
document.add_paragraph('C:我們用的不多不少', style='List Bullet')
document.add_heading('標題2', 2)
# 段落
document.add_paragraph('我平時基本都是手動操作Word文檔,現在打算利用Python來操作它,''你們平時是手動操作Word文檔?如果是的話,一起來了解下如何通過''Python來操作吧!')
# 表格
table = document.add_table(rows=3, cols=2, style='Table Grid')
# 表頭
hc = table.rows[0].cells
hc[0].text = '姓名'
hc[1].text = '年齡'
# 表體
bc1 = table.rows[1].cells
bc1[0].text = '張三'
bc1[1].text = '22'
bc2 = table.rows[2].cells
bc2[0].text = '李四'
bc2[1].text = '33'
# 保存
document.save('test.docx')
看一下效果:
2.4 圖片
我們接著向文檔中插入圖片,完整實現代碼如下所示:
from docx import Document
from docx.shared import Inches# 創建文檔
document = Document()
# 標題
document.add_heading('標題0', 0)
document.add_heading('標題1', 1)
# 段落
document.add_paragraph('你們平時Word文檔用的多嗎?')
# 列表
document.add_paragraph('A:我們用的多', style='List Bullet')
document.add_paragraph('B:我們用的少', style='List Bullet')
document.add_paragraph('C:我們用的不多不少', style='List Bullet')
document.add_heading('標題2', 2)
# 段落
document.add_paragraph('我平時基本都是手動操作Word文檔,現在打算利用Python來操作它,''你們平時是手動操作Word文檔?如果是的話,一起來了解下如何通過''Python來操作吧!')
# 表格
table = document.add_table(rows=3, cols=2, style='Table Grid')
# 表頭
hc = table.rows[0].cells
hc[0].text = '姓名'
hc[1].text = '年齡'
# 表體
bc1 = table.rows[1].cells
bc1[0].text = '張三'
bc1[1].text = '22'
bc2 = table.rows[2].cells
bc2[0].text = '李四'
bc2[1].text = '33'
# 分頁
# document.add_page_break()
# 圖片
document.add_picture('pic.jpg', width=Inches(1))
# 保存
document.save('test.docx')
看一下效果:
2.5 樣式
我們再設置一下基本樣式,比如:標題居中、字體加粗、首行縮進等,完整實現代碼如下所示:
from docx import Document
from docx.shared import Inches
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.shared import Cm, Pt# 創建文檔
document = Document()
style = document.styles['Normal']
# 標題
t0 = document.add_heading('標題0', 0)
# 居中
t0.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
document.add_heading('標題1', 1)
# 首行縮進兩個字符
paragraph_format = style.paragraph_format
paragraph_format.first_line_indent = Cm(0.74)
# 段落
p1 = document.add_paragraph('你們平時')
# 字體加粗
p1.add_run('Word文檔').bold = True
# 斜體
p1.add_run('用的多嗎?').italic = True
# 列表
document.add_paragraph('A:我們用的多', style='List Bullet')
document.add_paragraph('B:我們用的少', style='List Bullet')
document.add_paragraph('C:我們用的不多不少', style='List Bullet')
document.add_heading('標題2', 2)
# 段落
p2 = document.add_paragraph('我平時基本都是手動操作Word文檔,現在打算利用Python來操作它,''你們平時是手動操作Word文檔?如果是的話,')
run = p2.add_run('一起來了解下如何通過Python來操作吧!')
# 設置字體大小
run.font.size = Pt(12)
# 表格
table = document.add_table(rows=3, cols=2, style='Table Grid')
# 表頭
hc = table.rows[0].cells
hc[0].text = '姓名'
hc[1].text = '年齡'
# 表體
bc1 = table.rows[1].cells
bc1[0].text = '張三'
bc1[1].text = '22'
bc2 = table.rows[2].cells
bc2[0].text = '李四'
bc2[1].text = '33'
# 分頁
# document.add_page_break()
# 圖片
document.add_picture('pic.jpg', width=Inches(1))
# 保存
document.save('test.docx')
看一下效果:
3. 讀取
我們再來讀取一下之前 Word 文檔中寫入的內容,完整代碼實現如下所示:
from docx import Document# 打開文檔
document = Document('test.docx')
# 讀取標題、段落、列表內容
ps = [ paragraph.text for paragraph in document.paragraphs]
for p in ps:print(p)
# 讀取表格內容
ts = [table for table in document.tables]
for t in ts:for row in t.rows:for cell in row.cells:print(cell.text, end=' ')print()