首頁 > 軟體

Python設定Word全域性樣式和文字樣式的範例程式碼

2022-05-14 13:01:57

上一章節我們學習瞭如何生成 word 檔案以及在檔案行中新增各種內容,今天我們基於上一章節的內容進行添磚加瓦 —> 對內容進行各種樣式的設定,讓其能夠看起來更加的美觀。

全域性樣式的定義

通過全域性樣式的設定,可以使得 word 全文都可以繼承這樣的樣式效果:

使用方法:

style = document_obj.styles['Normal']

通過 Document 物件呼叫 styles 物件集,通過中括號的方式選擇全域性樣式,獲得 樣式物件 。

for style in document_obj.styles:	# 通過 for 迴圈可以檢視 styles 物件集
    print(style)

styles 物件集如下:

全域性定義的基本樣式舉例:

字型:style.font.name = '微軟雅黑'

字型顏色:style.font.color.rgb = RGBColor(255, 0, 0)

通過 from docx.shared import RGBColor 呼叫 docx 包的三原色模組

字型大小:style.font.size = Pt(20)

通過 from docx.shared import Pt 呼叫 docx 包的字型大小設定模組

程式碼範例如下:(在上一章節的程式碼基礎上進行 全域性樣式的程式碼演示)

# coding:utf-8

from docx import Document
from docx.shared import Inches, RGBColor, Pt

doc = Document()

style = doc.styles['Normal']    # 使用標準樣式
style.font.name = '微軟雅黑'     # 使用 "微軟雅黑" 字型
style.font.color.rgb = RGBColor(255, 0, 0)      # 使用紅色作為字型顏色
style.font.size = Pt(25)

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

執行結果如下:

文字樣式的定義

標題與段落

從上面的截圖可以看出,當我們設定全域性字型的顏色和大小的時候,只有段落收到了影響,而標題未受影響,這就引出了文字的樣式。

字型:

obj.font.name = "微軟雅黑" 這裡的 obj 就表示的是 標題與段落的物件 ;與設定全域性字型的方式一致。

字型顏色:

obj.font.color.rgb = RGBColor(255, 0, 0)

字型大小:

obj.font.size = Pt(20)

標題居中:

obj.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER 需要匯入:from docx.enum.text import WD_PARAGRAPH_ALIGNMENT

PS:除了居中之外,還可以居左、居右;left 或者 right

字型斜體:

obj.italic = True

為 True 是斜體;為 False 則是正常字型

字型粗體:

obj.blod = True

為 True 是粗體;為 False 則是正常字型

字型下劃線:

obj.underline = True

為 True 是增加下劃線;為 False 則是正常字型

程式碼範例如下:

# coding:utf-8

from docx import Document
from docx.shared import Inches, RGBColor, Pt
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT

doc = Document()

style = doc.styles['Normal']    # 使用標準樣式
style.font.name = '微軟雅黑'     # 使用 "微軟雅黑" 字型
# style.font.color.rgb = RGBColor(255, 0, 0)      # 使用紅色作為字型顏色
style.font.size = Pt(14)

title = doc.add_heading('', 0)      # 新增 word 檔案的 title 標題;(需要注意的是,這裡第一行的標題是不能設定為斜體等型別的)
                                    # 若想要將標題設定為斜體,需在這一行標題內容為空,然後針對追加內容寫入標題設定為斜體
title.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER      # 標題居中
title.style.font.size = Pt(20)
title_run = title.add_run('this is titlen測試版本')      # 針對 title 標題進行內容追加(換行)
title_run.italic = True                        # 將追加的內容轉為斜體字
title_run.blod = True                          # 將追加的內容轉為粗體字
title_run.underline = True
# print(dir(title))       # 通過 dir 函數檢視當前 title 標題可以使用的更多有趣的函數

para = doc.add_paragraph('這是 "test.docx" 檔案的第一行段落')
para.add_run('n這是 "test.docx" 檔案追加的的第二行段落').italic = True    # 將第二行段落設定為斜體
para.add_run('n這是 "test.docx" 檔案追加的的第三行段落').blod = True      # 將第三行段落設定為粗體
para.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER     # 將段落設定為居中顯示
print(dir(para))       # 通過 dir 函數檢視當前 para 段落可以使用的更多有趣的函數

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樣式內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com