Word 是一個(gè)十分常用的文字處理工具,通常我們都是手動(dòng)來操作它,本節(jié)我們來看一下如何通過 Python 來操作。
Python 提供了 python-docx
庫,該庫就是為 Word 文檔量身定制的,安裝使用 pip install python-docx
命令即可。
首先,我們使用 Python 來創(chuàng)建一個(gè) Word 文檔并向其中寫入一些內(nèi)容。
我們先來創(chuàng)建 Word 文檔并向其中添加標(biāo)題,完整實(shí)現(xiàn)代碼如下所示:
from docx import Document# 創(chuàng)建文檔document = Document()# 標(biāo)題document.add_heading('標(biāo)題0', 0)document.add_heading('標(biāo)題1', 1)document.add_heading('標(biāo)題2', 2)# 保存document.save('test.docx')
看一下效果:
我們接著向 Word 文檔中添加段落內(nèi)容,完整實(shí)現(xiàn)代碼如下所示:
from docx import Document# 創(chuàng)建文檔document = Document()# 標(biāo)題document.add_heading('標(biāo)題0', 0)document.add_heading('標(biāo)題1', 1)# 段落document.add_paragraph('你們平時(shí)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('標(biāo)題2', 2)# 段落document.add_paragraph('我平時(shí)基本都是手動(dòng)操作Word文檔,現(xiàn)在打算利用Python來操作它,' '你們平時(shí)是手動(dòng)操作Word文檔?如果是的話,一起來了解下如何通過' 'Python來操作吧!')# 保存document.save('test.docx')
看一下效果:
我們接著向文檔中插入表格,完整實(shí)現(xiàn)代碼如下所示:
from docx import Document# 創(chuàng)建文檔document = Document()# 標(biāo)題document.add_heading('標(biāo)題0', 0)document.add_heading('標(biāo)題1', 1)# 段落document.add_paragraph('你們平時(shí)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('標(biāo)題2', 2)# 段落document.add_paragraph('我平時(shí)基本都是手動(dòng)操作Word文檔,現(xiàn)在打算利用Python來操作它,' '你們平時(shí)是手動(dòng)操作Word文檔?如果是的話,一起來了解下如何通過' 'Python來操作吧!')# 表格table = document.add_table(rows=3, cols=2, style='Table Grid')# 表頭hc = table.rows[0].cellshc[0].text = '姓名'hc[1].text = '年齡'# 表體bc1 = table.rows[1].cellsbc1[0].text = '張三'bc1[1].text = '22'bc2 = table.rows[2].cellsbc2[0].text = '李四'bc2[1].text = '33'# 保存document.save('test.docx')
看一下效果:
我們接著向文檔中插入圖片,完整實(shí)現(xiàn)代碼如下所示:
from docx import Documentfrom docx.shared import Inches# 創(chuàng)建文檔document = Document()# 標(biāo)題document.add_heading('標(biāo)題0', 0)document.add_heading('標(biāo)題1', 1)# 段落document.add_paragraph('你們平時(shí)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('標(biāo)題2', 2)# 段落document.add_paragraph('我平時(shí)基本都是手動(dòng)操作Word文檔,現(xiàn)在打算利用Python來操作它,' '你們平時(shí)是手動(dòng)操作Word文檔?如果是的話,一起來了解下如何通過' 'Python來操作吧!')# 表格table = document.add_table(rows=3, cols=2, style='Table Grid')# 表頭hc = table.rows[0].cellshc[0].text = '姓名'hc[1].text = '年齡'# 表體bc1 = table.rows[1].cellsbc1[0].text = '張三'bc1[1].text = '22'bc2 = table.rows[2].cellsbc2[0].text = '李四'bc2[1].text = '33'# 分頁# document.add_page_break()# 圖片document.add_picture('pic.jpg', width=Inches(1))# 保存document.save('test.docx')
看一下效果:
我們?cè)僭O(shè)置一下基本樣式,比如:標(biāo)題居中、字體加粗、首行縮進(jìn)等,完整實(shí)現(xiàn)代碼如下所示:
from docx import Documentfrom docx.shared import Inchesfrom docx.enum.text import WD_PARAGRAPH_ALIGNMENTfrom docx.shared import Cm, Pt# 創(chuàng)建文檔document = Document()style = document.styles['Normal']# 標(biāo)題t0 = document.add_heading('標(biāo)題0', 0)# 居中t0.alignment = WD_PARAGRAPH_ALIGNMENT.CENTERdocument.add_heading('標(biāo)題1', 1)# 首行縮進(jìn)兩個(gè)字符paragraph_format = style.paragraph_formatparagraph_format.first_line_indent = Cm(0.74)# 段落p1 = document.add_paragraph('你們平時(shí)')# 字體加粗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('標(biāo)題2', 2)# 段落p2 = document.add_paragraph('我平時(shí)基本都是手動(dòng)操作Word文檔,現(xiàn)在打算利用Python來操作它,' '你們平時(shí)是手動(dòng)操作Word文檔?如果是的話,')run = p2.add_run('一起來了解下如何通過Python來操作吧!')# 設(shè)置字體大小run.font.size = Pt(12)# 表格table = document.add_table(rows=3, cols=2, style='Table Grid')# 表頭hc = table.rows[0].cellshc[0].text = '姓名'hc[1].text = '年齡'# 表體bc1 = table.rows[1].cellsbc1[0].text = '張三'bc1[1].text = '22'bc2 = table.rows[2].cellsbc2[0].text = '李四'bc2[1].text = '33'# 分頁# document.add_page_break()# 圖片document.add_picture('pic.jpg', width=Inches(1))# 保存document.save('test.docx')
看一下效果:
我們?cè)賮碜x取一下之前 Word 文檔中寫入的內(nèi)容,完整代碼實(shí)現(xiàn)如下所示:
from docx import Document# 打開文檔document = Document('test.docx')# 讀取標(biāo)題、段落、列表內(nèi)容ps = [ paragraph.text for paragraph in document.paragraphs]for p in ps: print(p)# 讀取表格內(nèi)容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()
聯(lián)系客服