Python自動化辦公之Word文檔的創建與生成

上幾章節我們主要學習瞭如何讀取文章,而主要任務是讀取文檔中的文本信息,也就是字符串,而圖片本身是不可讀的文件所以並沒有去讀取圖片。從今天開始將學習如何通過 python 腳本來自動生成一個 word 文檔。

保存生成 word

在學習如何生成一個 word 文檔之前,我們來看看如何保存生成 word 文件,因為馬上就會用到。

使用方法:

document_obj.save(文件地址) —> /home/demo.docx

代碼示例如下:

# coding:utf-8

from docx import Document

doc = Document()
doc.save('test.docx')

運行結果如下:

生成標題

使用方法:

title_obj = DocumentObj.add_heading(標題內容, 標題樣式等級) 通過 Document 對象調用 add_heading 函數 返回 標題對象。

標題樣式等級:

0 <= lever <= 9

標題內容追加:

titleobj.add_run 通過標題對象調用 add_run 函數 進行標題內容的追加

代碼示例如下:

# coding:utf-8

from docx import Document

doc = Document()

title = doc.add_heading('this is title', 1)    # 添加 word 文件的 title 標題
title.add_run('\n - 測試版本')      # 針對 title 標題進行內容追加(換行)

doc.save('test.docx')

運行結果如下:

生成段落

使用方法:

para_obj = document_obj.add_paragraph(段落內容) 通過 Document 對象調用 add_paragraph 函數 返回 段落對象。

段落內容追加:

para_obj.add_run(字符串內容)

換行方式:

\n 換行特殊字符來分割段落

代碼示例如下:

# coding:utf-8

from docx import Document

doc = Document()

title = doc.add_heading('this is title', 1)    # 添加 word 文件的 title 標題
title.add_run('\n - 測試版本')      # 針對 title 標題進行內容追加(換行)

para = doc.add_paragraph('這是 \"test.docx\" 文件的第一行段落')
para.add_run('\n這是 \"test.docx\" 文件追加的的第二行段落')

doc.save('test.docx')

運行結果如下:

添加圖片

使用方法:

image_obj = document_obj.add_picture(圖片地址, 寬, 高) 通過 Document 對象調用 add_picture 函數 返回 圖片對象。

寬高定義:

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 標題
title.add_run('\n - 測試版本')      # 針對 title 標題進行內容追加(換行)

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')

運行結果如下:

添加表格

使用方法:

table_obj = document_obj.add_table(row=行數, cols=列數) 通過 Document 對象調用 add_table 函數 返回 表格對象。

cell = table_obj.row[0].cells 表格對象調用 rows 返回表格的行對象

cell[0].text = 當前行 0 列的內容

cell[1].text = 當前行 1 列的內容

表格追加:

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 標題
title.add_run('\n - 測試版本')      # 針對 title 標題進行內容追加(換行)

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')

運行結果如下:

分頁

使用方法:

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 標題
title.add_run('\n - 測試版本')      # 針對 title 標題進行內容追加(換行)

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_title 的每列的名稱寫入表格
table_cells[0].text = table_title[0]
table_cells[1].text = table_title[1]
table_cells[2].text = table_title[2]

data = [            # 定義 data 的內容,準備將其追加寫入表格
    ('Neo', '18', 'man'),
    ('Adem', '17', 'man'),
    ('Lily', '18', 'women')
]

for i in data:      # 利用 for 循環將 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 文件的分頁
title = doc.add_heading('this is page_2 title', 1)    # 添加 word 文件的第二分頁的 title 標題

doc.save('test.docx')

運行結果如下:

到此這篇關於Python自動化辦公之Word文檔的創建與生成的文章就介紹到這瞭,更多相關Python Word創建生成內容請搜索LevelAH以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持LevelAH!

推薦閱讀: