Python 操作 Word 寫入
日常辦公中,無論你是程序員還是普通文職人員,操作 Word 一定在你的工作中占了非常大的比例。項目文檔、需求分析文檔、合同報價、方案等等,這一系列都需要在Word中進(jìn)行完成。但如何更高效靈活的使用 Word 你知道么?本小節(jié)將介紹 Python 第三方庫 python-docx 模塊完成對 Word 的操作。
1. python-docx模塊介紹
python-docx 是用于創(chuàng)建和更新 Microsoft Word(.docx)文件的 Python 庫。
通過本小節(jié)的學(xué)習(xí),我們最終要完成Word文檔 "info.docx"的創(chuàng)建,文檔內(nèi)容(花式 pick 慕課網(wǎng))如下圖所示。
1.1 安裝
python-docx 是 Python 的第三方庫,使用前需要通過以下命令進(jìn)行安裝:
pip install python-docx
1.2 使用步驟
步驟1:導(dǎo)入 docx 模塊
from docx import Document
步驟2:創(chuàng)建(讀?。┮粋€文檔對象
document = Document() # 新建文檔對象
Document("info.docx") #讀取現(xiàn)有的word 建立文檔對象
步驟3:向文檔中寫入內(nèi)容
根據(jù) docx 提供的方法,完成 Word文檔所需內(nèi)容的寫入。
步驟4:生成 Excel 文件
from docx import Document
document = Document() # 新建文檔對象
...省略部分代碼
document.save('C:/info.docx')# 保存文檔
通過 save() 方法進(jìn)行保存,生成 Word 文件,save() 方法可以傳入你想要保存到的文件路徑。到這里就完成了新的 Word 文檔創(chuàng)建和內(nèi)容寫入的操作。
2. python-docx 操作 Word 寫入
接下來,針對 python-docx提供的常用寫入方法進(jìn)行講解,這里根據(jù)寫入內(nèi)容的類型進(jìn)行劃分。
2.1 寫入文本
寫入文本內(nèi)容常用方法見下表。
方法名 | 描述 |
---|---|
add_heading(text=u’’, level=1) | 寫入標(biāo)題段落 |
add_paragraph(text = u’’,style=None) | 寫入普通段落 |
insert_paragraph_before(text = u’’,style=None) | 插入段落到現(xiàn)有段落之前 |
下面來具體看下每個方法的使用:
- add_heading() 使用:
from docx import Document
document.add_heading('慕課網(wǎng)簡介', level=1)
document.save('info.docx')
代碼解釋:add_heading() 方法寫入標(biāo)題段落,段落樣式由 level 決定,level范圍為0 至 9,默認(rèn)為1。執(zhí)行完成后,info.docx 文檔效果如下圖所示。
- add_paragraph() 使用:
from docx import Document
document.add_heading('慕課網(wǎng)簡介', level=1)
p1 = document.add_paragraph(
'慕課網(wǎng)是垂直的互聯(lián)網(wǎng)IT技能免費學(xué)習(xí)網(wǎng)站。以獨家視頻教程、在線編程工具、學(xué)習(xí)計劃、問答社區(qū)為核心特色。在這里,你可以找到最好的互聯(lián)網(wǎng)技術(shù)牛人,也可以通過免費的在線公開視頻課程學(xué)習(xí)國內(nèi)領(lǐng)先的互聯(lián)網(wǎng)IT技術(shù)')
document.save('info.docx')
代碼解釋:add_paragraph() 方法寫入段落,段落樣式由 style 決定(本小節(jié)中僅寫入段落,后續(xù)小節(jié)會對應(yīng)用樣式進(jìn)行介紹),執(zhí)行完成后,info.docx 文檔效果如下圖所示。
- insert_paragraph_before() 使用:
from docx import Document
document.add_heading('慕課網(wǎng)簡介', level=1)
p1 = document.add_paragraph(
'慕課網(wǎng)是垂直的互聯(lián)網(wǎng)IT技能免費學(xué)習(xí)網(wǎng)站。以獨家視頻教程、在線編程工具、學(xué)習(xí)計劃、問答社區(qū)為核心特色。在這里,你可以找到最好的互聯(lián)網(wǎng)技術(shù)牛人,也可以通過免費的在線公開視頻課程學(xué)習(xí)國內(nèi)領(lǐng)先的互聯(lián)網(wǎng)IT技術(shù)')
p1.insert_paragraph_before('!!!慕課網(wǎng)是垂直的互聯(lián)網(wǎng)IT技能免費學(xué)習(xí)網(wǎng)站')
document.save('info.docx')
代碼解釋:insert_paragraph_before() 方法為插入段落到現(xiàn)有段落之前,段落樣式由 style 決定。執(zhí)行完成后,info.docx 文檔效果如下圖所示。
2.2 寫入圖片
寫入圖片方法,見下表。
方法 | 描述 |
---|---|
add_picture(image_path_or_stream,width = None,height = None ) | 插入指定圖片 |
對應(yīng)代碼中訪問,如下所示:
from docx import Document
from docx.shared import Pt
document.add_heading('慕課網(wǎng)簡介', level=1)
...省略部分代碼
document.add_picture('logo.jpg')
document.add_picture('logo.jpg', Pt(20), Pt(30))
document.save('info.docx')
代碼解釋:add_picture() 方法為插入指定圖片,并根據(jù)寬度和高度縮放。如果未指定寬度或高度,則圖片以其原始尺寸顯示。代碼中共插入了 2 張 logo 圖片,第一張沒有設(shè)置寬度和高度即按原始尺寸插入,第二張根據(jù)指定的寬度和高度按比例縮放,參數(shù) Pt 為 points 磅,與字號對應(yīng)可以參考下圖。
執(zhí)行完成后,info.docx 文檔效果如下圖所示。
2.3 寫入表格
寫入表格方法,見下表。
方法 | 描述 |
---|---|
add_table(rows, cols) | 插入指定行數(shù)、列數(shù)的表格 |
通過表格可以很好的展示列表形式的數(shù)據(jù),下面使用 add_table() 方法創(chuàng)建一個關(guān)于最新課程的表格,包含課程名稱、講師和價格。代碼如下所示:
...省略部分代碼
# 插入表格(1行3列,表格應(yīng)用樣式Medium List 2)
table = document.add_table(rows=1, cols=3, style='Medium List 2')
# 獲取到第一行中的單元格列表
header_cells = table.rows[0].cells
header_cells[0].text = '新上好課'
header_cells[1].text = '講師'
header_cells[2].text = '價格'
# 初始化課程數(shù)據(jù)
data = (
['Java實操避坑指南', "勤一", 298],
['Vue2.5->2.6->3.0 開發(fā)去哪兒網(wǎng)APP', "DELL", 266],
['Vue3.0(正式版) + TS 仿知乎專欄企業(yè)級項目', "張軒", 298],
)
# 循環(huán)課程數(shù)據(jù)
for item in data:
# 使用add_row()方法創(chuàng)建新的一行
rows_cells = table.add_row().cells
rows_cells[0].text = item[0]
rows_cells[1].text = item[1]
rows_cells[2].text = str(item[2])
document.save('info.docx')
代碼解釋:add_table() 方法為插入指定行數(shù)、列數(shù)的表格,參數(shù)rows為指定行數(shù), cols為指定列數(shù), style為表格應(yīng)用的樣式。代碼中初始表格為 1 行 3 列,在填充處理的位置,通過遍歷調(diào)用 add_row() 方法添加新的一行,為其設(shè)置各單元格內(nèi)容。執(zhí)行完成后,info.docx文檔效果如下圖所示。
3.小結(jié)
本節(jié)課程我們主要學(xué)習(xí)了 python-docx 模塊的使用。本節(jié)課程的重點如下:
- 了解 python-docx 模塊作用及使用步驟;
- 掌握 python-docx 模塊中寫入文本、圖片、表格的使用方法。