python使用openpyxl實現(xiàn)批量調(diào)整字體和樣式
使用openpyxl 批量調(diào)整字體和樣式
修改字體樣式 Font(name,size,bold,italic,color)
from openpyxl.styles import Font from openpyxl import load_workbook ''' Font(name=字體名稱,size=字體大小,bold=是否加粗,italic=是否斜體,color=字體顏色) ''' workbook = load_workbook(filename="../excelDemo/testCase.xlsx") sheet = workbook.active cell = sheet["A1"] font = Font(name="微軟雅黑",size=20,bold=True,italic=True,color="FF0000") # 這個 color 是 RGB 的 16 進制表示 cell.font = font workbook.save(filename="../excelDemo/testCase.xlsx")
效果展示:
獲取表格中格子的字體樣式
font.name
字體名稱font.size
字體大小font.bold
是否加粗 返回的是布爾值font.italic
是否斜體 返回的是布爾值font.color
字體顏色 返回顏色類型和相關(guān)參數(shù)
from openpyxl.styles import Font from openpyxl import load_workbook workbook = load_workbook(filename="../excelDemo/testCase.xlsx") sheet = workbook.active cell = sheet["A1"] font = cell.font print(font.name, font.size, font.bold, font.italic, font.color) ''' 輸出結(jié)果: 微軟雅黑 20.0 True True <openpyxl.styles.colors.Color object> Parameters: rgb='00FF0000', indexed=None, auto=None, theme=None, tint=0.0, type='rgb' '''
設(shè)置對齊樣式 Alignment(horizontal,vertical,text_rotation,wrap_text)
Alignment(horizontal=水平對齊模式,vertical=垂直對齊模式,text_rotation=旋轉(zhuǎn)角度,wrap_text=是否自動換行)
- 水平對齊:
- horizontal代表水平方向,可以左對齊left,還有居中center和右對齊right,分散對齊distributed,跨列居中centerContinuous,兩端對齊justify,填充fill,常規(guī)general
- 垂直對齊:
- vertical代表垂直方向,可以居中center,還可以靠上top,靠下bottom,兩端對齊justify,分散對齊distributed
workbook = load_workbook(filename="../excelDemo/testCase.xlsx") sheet = workbook.active cell = sheet["A3"] alignment = Alignment(horizontal="center",vertical="center",text_rotation=45,wrap_text=True) cell.alignment = alignment workbook.save(filename="../excelDemo/testCase.xlsx")
設(shè)置邊框樣式 Side(style,color)
Side(style=邊線樣式,color=邊線顏色) * style 參數(shù)的種類: 'double, 'mediumDashDotDot', 'slantDashDot', 'dashDotDot','dotted','hair', 'mediumDashed, 'dashed', 'dashDot', 'thin', 'mediumDashDot','medium', 'thick' Border(left=左邊線樣式,right=右邊線樣式,top=上邊線樣式,bottom=下邊線樣式)
from openpyxl.styles import Side,Border from openpyxl import load_workbook workbook = load_workbook(filename="../excelDemo/testCase.xlsx") sheet = workbook.active cell = sheet["D6"] side1 = Side(style="thin",color="FF0000") side2 = Side(style="thick",color="FFFF0000") border = Border(left=side1,right=side1,top=side2,bottom=side2) cell.border = border workbook.save(filename="../excelDemo/testCase.xlsx")
展示效果:
設(shè)置填充樣式 PatternFill()、GradientFill()
語法:
- PatternFill(fill_type=填充樣式,fgColor=填充顏色)
- GradientFill(stop=(漸變顏色 1,漸變顏色 2……))
from openpyxl.styles import PatternFill,GradientFill from openpyxl import load_workbook workbook = load_workbook(filename="../excelDemo/testCase.xlsx") sheet = workbook.active cell_b9 = sheet["B9"] pattern_fill = PatternFill(fill_type="solid",fgColor="99ccff") cell_b9.fill = pattern_fill cell_b10 = sheet["B10"] gradient_fill = GradientFill(stop=("FFFFFF","99ccff","000000")) cell_b10.fill = gradient_fill workbook.save(filename="../excelDemo/testCase.xlsx")
展示效果:
設(shè)置行高和列寬
語法:
.row_dimensions[行編號].height = 行高 .column_dimensions[列編號].width = 列寬
from openpyxl import load_workbook workbook = load_workbook(filename="../excelDemo/testCase.xlsx") sheet = workbook.active # 設(shè)置第 1 行的高度 sheet.row_dimensions[1].height = 50 # 設(shè)置 B 列的寬度 sheet.column_dimensions["B"].width = 20 workbook.save(filename="../excelDemo/testCase.xlsx")
也可以統(tǒng)一整張表的行高和列寬
from openpyxl import load_workbook workbook = load_workbook(filename="../excelDemo/testCase.xlsx") sheet = workbook.active # 將整個表的行高設(shè)置為 50,列寬設(shè)置為 30; sheet.row_dimensions.height = 50 sheet.column_dimensions.width = 30 workbook.save(filename="../excelDemo/testCase.xlsx")
合并單元格與取消合并單元格
合并單元格 merge_cells()
語法:
.merge_cells(待合并的格子編號) .merge_cells(start_row=起始行號,start_column=起始列號,end_row=結(jié)束行號,end_column=結(jié)束列號)
from openpyxl import load_workbook workbook = load_workbook(filename="./testCase.xlsx") sheet = workbook.active sheet.merge_cells("C1:D2") sheet.merge_cells(start_row=7,start_column=1,end_row=8,end_column=3) workbook.save(filename="./testCase.xlsx")
若合并的多個單元格中均有內(nèi)容,只保留第一個單元格中的內(nèi)容
效果如下:
取消合并單元格 unmerge_cells()
語法:
.unmerge_cells(待合并的格子編號) .unmerge_cells(start_row=起始行號,start_column=起始列號,end_row=結(jié)束行號,end_column=結(jié)束列號)
from openpyxl import load_workbook workbook = load_workbook(filename="./testCase.xlsx") sheet = workbook.active sheet.merge_cells("C1:D2") sheet.merge_cells(start_row=7,start_column=1,end_row=8,end_column=3) workbook.save(filename="./testCase.xlsx")
注意:取消合并單元格,不能恢復(fù)合并單元格所丟失的數(shù)據(jù)
效果如下:
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python3.5內(nèi)置模塊之os模塊、sys模塊、shutil模塊用法實例分析
這篇文章主要介紹了Python3.5內(nèi)置模塊之os模塊、sys模塊、shutil模塊用法,結(jié)合實例形式分析了Python os模塊、sys模塊及shutil模塊針對文件、路徑等相關(guān)操作技巧,需要的朋友可以參考下2019-04-04Pytorch Conda環(huán)境下載慢換源/刪源/恢復(fù)默認源的簡單操作
隨著實驗增多,需要分割創(chuàng)建環(huán)境的情況時有出現(xiàn),在此情況下使用conda create --name xx python=3.10 pytorch torchvision pytorch-cuda -c nvidia -c pytorch -y這樣的指令創(chuàng)建時如果不換源,往往下載速度很慢,本文介紹了解決辦法,需要的朋友可以參考下2024-07-07詳解Python+Pyecharts實現(xiàn)漏斗圖的繪制
漏斗圖是一個簡單的散點圖,反映研究在一定樣本量或精確性下單個研究的干預(yù)效應(yīng)估計值。本文將用Python Pyecharts實現(xiàn)漏斗圖的繪制,需要的可以參考一下2022-06-06使用Python實現(xiàn)一個本地視頻流媒體服務(wù)器
你是否曾經(jīng)想過在本地網(wǎng)絡(luò)上輕松地將電腦上的視頻分享給手機或平板電腦觀看?也許你下載了一部電影,想在客廳的智能電視上播放,卻不想費力地拷貝文件,今天,小編將給大家介紹如何使用Python構(gòu)建一個簡單的本地視頻流媒體服務(wù)器,需要的朋友可以參考下2025-04-04python實現(xiàn)一次性封裝多條sql語句(begin end)
這篇文章主要介紹了python實現(xiàn)一次性封裝多條sql語句(begin end),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06python使用jenkins發(fā)送企業(yè)微信通知的實現(xiàn)
公司使用的是企業(yè)微信,因此考慮Jenkins通知企業(yè)微信機器人的實現(xiàn)方式,本文主要介紹了python使用jenkins發(fā)送企業(yè)微信通知的實現(xiàn),感興趣的可以了解一下2021-06-06python2 與 pyhton3的輸入語句寫法小結(jié)
這篇文章主要給大家介紹了關(guān)于python2 與 pyhton3的輸入語句寫法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09