Python自動化辦公篇 – 93 – word文件自動化 – 創建並生成 word 文檔


萬葉集
隱約雷鳴,陰霾天空。
但盼風雨來,能留你在此。

前言
✌ 作者簡介:渴望力量的哈士奇 ✌,大傢可以叫我 哈士奇 ,致力於用白話講解技術知識的博主 ✌
CSDN博客專傢認證、新星計劃第三季全棧賽道 top_1 、華為雲享專傢、阿裡雲專傢博主
如果文章知識點有錯誤的地方,請指正!和大傢一起學習,一起進步
人生格言:優於別人,並不高貴,真正的高貴應該是優於過去的自己。
如果感覺博主的文章還不錯的話,還請關註、點贊、收藏三連支持一下博主哦


系列專欄:
                Python全棧系列 – [更新中]     【 本文在該系列】
                        Python零基礎入門篇
                        Python語法進階篇
                        Python自動化辦公篇
               網安之路系列
​                       網安之路踩坑篇
​                       網安知識掃盲篇
​                       Vulhub 漏洞復現篇
​                       Shell腳本編程篇
​                       Web攻防篇   2021年9月3日停止更新,轉戰先知等安全社區
​                       滲透工具使用集錦  2021年9月3日停止更新,轉戰先知等安全社區
​                ⭐️ 點點點工程師系列
​                       測試神器 – Charles 篇
​                       測試神器 – Fiddler 篇
​                       測試神器 – Jmeter 篇
​                       自動化 – RobotFrameWork 系列
​                       自動化 – 基於 JAVA 實現的WEB端UI自動化
                       自動化 – 基於 MonkeyRunner 實現的APP端UI自動化

文章目錄

    • 保存生成 word
    • 生成標題
    • 生成段落
    • 添加圖片
    • 添加表格
    • 分頁

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

保存生成 word

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

使用方法:

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

代碼示例如下:

# coding:utf-8from docx import Documentdoc = Document()doc.save('test.docx')

運行結果如下:



生成標題

使用方法:

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


標題樣式等級:

0 <= lever <= 9


標題內容追加:

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

代碼示例如下:

# coding:utf-8from docx import Documentdoc = 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-8from docx import Documentdoc = 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-8from docx import Documentfrom docx.shared import Inchesdoc = 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-8from docx import Documentfrom docx.shared import Inchesdoc = 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].cellstable_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-8from docx import Documentfrom docx.shared import Inchesdoc = 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')

運行結果如下:



本文來自網絡,不代表程式碼花園立場,如有侵權,請聯系管理員。https://www.codegarden.cn/article/28053/
返回顶部