Python自動(dòng)化辦公之Word文檔的創(chuàng)建與生成
上幾章節(jié)我們主要學(xué)習(xí)了如何讀取文章,而主要任務(wù)是讀取文檔中的文本信息,也就是字符串,而圖片本身是不可讀的文件所以并沒有去讀取圖片。從今天開始將學(xué)習(xí)如何通過(guò) python 腳本來(lái)自動(dòng)生成一個(gè) word 文檔。
保存生成 word
在學(xué)習(xí)如何生成一個(gè) word 文檔之前,我們來(lái)看看如何保存生成 word 文件,因?yàn)轳R上就會(huì)用到。
使用方法:
document_obj.save(文件地址) ---> /home/demo.docx
代碼示例如下:
# coding:utf-8
from docx import Document
doc = Document()
doc.save('test.docx')
運(yùn)行結(jié)果如下:

生成標(biāo)題
使用方法:
title_obj = DocumentObj.add_heading(標(biāo)題內(nèi)容, 標(biāo)題樣式等級(jí)) 通過(guò) Document 對(duì)象調(diào)用 add_heading 函數(shù) 返回 標(biāo)題對(duì)象。
標(biāo)題樣式等級(jí):
0 <= lever <= 9
標(biāo)題內(nèi)容追加:
titleobj.add_run 通過(guò)標(biāo)題對(duì)象調(diào)用 add_run 函數(shù) 進(jìn)行標(biāo)題內(nèi)容的追加
代碼示例如下:
# coding:utf-8
from docx import Document
doc = Document()
title = doc.add_heading('this is title', 1) # 添加 word 文件的 title 標(biāo)題
title.add_run('\n - 測(cè)試版本') # 針對(duì) title 標(biāo)題進(jìn)行內(nèi)容追加(換行)
doc.save('test.docx')
運(yùn)行結(jié)果如下:


生成段落
使用方法:
para_obj = document_obj.add_paragraph(段落內(nèi)容) 通過(guò) Document 對(duì)象調(diào)用 add_paragraph 函數(shù) 返回 段落對(duì)象。
段落內(nèi)容追加:
para_obj.add_run(字符串內(nèi)容)
換行方式:
\n 換行特殊字符來(lái)分割段落
代碼示例如下:
# coding:utf-8
from docx import Document
doc = Document()
title = doc.add_heading('this is title', 1) # 添加 word 文件的 title 標(biāo)題
title.add_run('\n - 測(cè)試版本') # 針對(duì) title 標(biāo)題進(jìn)行內(nèi)容追加(換行)
para = doc.add_paragraph('這是 \"test.docx\" 文件的第一行段落')
para.add_run('\n這是 \"test.docx\" 文件追加的的第二行段落')
doc.save('test.docx')
運(yùn)行結(jié)果如下:


添加圖片
使用方法:
image_obj = document_obj.add_picture(圖片地址, 寬, 高) 通過(guò) Document 對(duì)象調(diào)用 add_picture 函數(shù) 返回 圖片對(duì)象。
寬高定義:
from docx.shared import Inches
add_picture(x, width=Inches(5), height=Inches(5))
代碼示例如下:
# coding:utf-8
from docx import Document
from docx.shared import Inches
doc = Document()
title = doc.add_heading('this is title', 1) # 添加 word 文件的 title 標(biāo)題
title.add_run('\n - 測(cè)試版本') # 針對(duì) title 標(biāo)題進(jìn)行內(nèi)容追加(換行)
para = doc.add_paragraph('這是 \"test.docx\" 文件的第一行段落')
para.add_run('\n這是 \"test.docx\" 文件追加的的第二行段落')
image = doc.add_picture('test_image.png', width=Inches(3), height=Inches(1.5))
doc.save('test.docx')
運(yùn)行結(jié)果如下:


添加表格
使用方法:
table_obj = document_obj.add_table(row=行數(shù), cols=列數(shù)) 通過(guò) Document 對(duì)象調(diào)用 add_table 函數(shù) 返回 表格對(duì)象。
cell = table_obj.row[0].cells 表格對(duì)象調(diào)用 rows 返回表格的行對(duì)象
cell[0].text = 當(dāng)前行 0 列的內(nèi)容
cell[1].text = 當(dāng)前行 1 列的內(nèi)容
表格追加:
row_cell = table.add_row().cells
代碼示例如下:
# coding:utf-8
from docx import Document
from docx.shared import Inches
doc = Document()
title = doc.add_heading('this is title', 1) # 添加 word 文件的 title 標(biāo)題
title.add_run('\n - 測(cè)試版本') # 針對(duì) title 標(biāo)題進(jìn)行內(nèi)容追加(換行)
para = doc.add_paragraph('這是 \"test.docx\" 文件的第一行段落')
para.add_run('\n這是 \"test.docx\" 文件追加的的第二行段落')
image = doc.add_picture('test_image.png', width=Inches(3), height=Inches(1.5))
table_title = ['name', 'age', 'sex']
table = doc.add_table(rows=1, cols=3)
table_cells = table.rows[0].cells
table_cells[0].text = table_title[0]
table_cells[1].text = table_title[1]
table_cells[2].text = table_title[2]
data = [
('Neo', '18', 'man'),
('Adem', '17', 'man'),
('Lily', '18', 'women')
]
for i in data:
row_cells = table.add_row().cells
row_cells[0].text = i[0]
row_cells[1].text = i[1]
row_cells[2].text = i[2]
doc.save('test.docx')
運(yùn)行結(jié)果如下:


分頁(yè)
使用方法:
document_obj.add_page_break()
代碼示例如下:
# coding:utf-8
from docx import Document
from docx.shared import Inches
doc = Document()
title = doc.add_heading('this is title', 1) # 添加 word 文件的 title 標(biāo)題
title.add_run('\n - 測(cè)試版本') # 針對(duì) title 標(biāo)題進(jìn)行內(nèi)容追加(換行)
para = doc.add_paragraph('這是 \"test.docx\" 文件的第一行段落')
para.add_run('\n這是 \"test.docx\" 文件追加的的第二行段落')
image = doc.add_picture('test_image.png', width=Inches(3), height=Inches(1.5)) # 添加圖片
table_title = ['name', 'age', 'sex'] # 定義表格的第一行的標(biāo)題
table = doc.add_table(rows=1, cols=3) # 定義表格的行數(shù)、列數(shù)
table_cells = table.rows[0].cells # 將 table_title 的每列的名稱寫入表格
table_cells[0].text = table_title[0]
table_cells[1].text = table_title[1]
table_cells[2].text = table_title[2]
data = [ # 定義 data 的內(nèi)容,準(zhǔn)備將其追加寫入表格
('Neo', '18', 'man'),
('Adem', '17', 'man'),
('Lily', '18', 'women')
]
for i in data: # 利用 for 循環(huán)將 data 追加寫入表格
row_cells = table.add_row().cells
row_cells[0].text = i[0]
row_cells[1].text = i[1]
row_cells[2].text = i[2]
doc.add_page_break() # 添加 word 文件的分頁(yè)
title = doc.add_heading('this is page_2 title', 1) # 添加 word 文件的第二分頁(yè)的 title 標(biāo)題
doc.save('test.docx')
運(yùn)行結(jié)果如下:


到此這篇關(guān)于Python自動(dòng)化辦公之Word文檔的創(chuàng)建與生成的文章就介紹到這了,更多相關(guān)Python Word創(chuàng)建生成內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python+Pygame實(shí)現(xiàn)之見縫插針游戲的實(shí)現(xiàn)
這篇文章主要為大家介紹了如何利用Python中的Pygame模塊實(shí)現(xiàn)見縫插針游戲,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python游戲開發(fā)有一定幫助,需要的可以參考一下2022-07-07
Django緩存系統(tǒng)實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Django緩存系統(tǒng)實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
pandas使用apply多列生成一列數(shù)據(jù)的實(shí)例
今天小編就為大家分享一篇pandas使用apply多列生成一列數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
python pyg2plot的原理知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家整理的是一篇關(guān)于python pyg2plot的原理知識(shí)點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們可以參考下。2021-02-02
python讀取圖片的方式,以及將圖片以三維數(shù)組的形式輸出方法
今天小編就為大家分享一篇python讀取圖片的方式,以及將圖片以三維數(shù)組的形式輸出方法,具有好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
Python matplotlib繪制散點(diǎn)圖的實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于Python matplotlib繪制散點(diǎn)圖的相關(guān)資料,所謂散點(diǎn)圖就是反映兩組變量每個(gè)數(shù)據(jù)點(diǎn)的值,并且從散點(diǎn)圖可以看出它們之間的相關(guān)性,需要的朋友可以參考下2021-06-06

