python 設置 excel 單元格顏色填充和字體效果


0、import

import openpyxl from openpyxl.styles import colors, fills, Font, PattrernFill

1、查看填充類型

print(dir(fills))

fill_types = [ 'FILL_PATTERN_DARKDOWN', 'FILL_PATTERN_DARKGRAY', 'FILL_PATTERN_DARKGRID', 'FILL_PATTERN_DARKHORIZONTAL', 'FILL_PATTERN_DARKTRELLIS', 'FILL_PATTERN_DARKUP', 'FILL_PATTERN_DARKVERTICAL', 'FILL_PATTERN_GRAY0625', 'FILL_PATTERN_GRAY125', 'FILL_PATTERN_LIGHTDOWN', 'FILL_PATTERN_LIGHTGRAY', 'FILL_PATTERN_LIGHTGRID', 'FILL_PATTERN_LIGHTHORIZONTAL', 'FILL_PATTERN_LIGHTTRELLIS', 'FILL_PATTERN_LIGHTUP', 'FILL_PATTERN_LIGHTVERTICAL', 'FILL_PATTERN_MEDIUMGRAY', 'FILL_SOLID'] fill_types = [eval(f'openpyxl.styles.fills.{fill_type}') for fill_type in fill_types] fill_types

 

 

2 在 excel 中用不同的填充類型體驗填充效果

2.1、PatternFill( patternType, fgColor=colors.RED )

# 創建 workbook 實例
wb = openpyxl.Workbook() ws = wb.active # 合並單元格--------------------------------------------------------
di = 2   # 每塊合並 2 行
dj = 2    # 每塊合並 3 列
merged_cells = []    # 合並區域中的單元格列表的列表

for i in range(2, 27, 5): for j in range(2, 15, 4): # 合並單元格
        ws.merge_cells(start_row=i, start_column=j, end_row=i+di, end_column=j+dj) # 添加單元格的列表
        merged_cells.append([ws.cell(row=i+ii, column=j+jj) for ii in range(di+1) for jj in range(dj+1)] ) # 創建 Font 實例 -------------------------------------------------------- 
font = Font(name='Arial',   # 字體
            sz=20,    # size 字號
            b=True,    # bold 加粗
            i=True,    # italic 傾斜
            underline='single',    #下划線
            strike='double',     # 刪除線
            color=colors.BLACK, ) # 對合並的單元格區域填充顏色、寫入填充類型----------------------------------------
for i, fill_type in enumerate(fill_types): # 創建 PatternFill 實例
    fill  = PatternFill(patternType=fill_type, fgColor=colors.RED, ) for cell in merged_cells[i]: cell.fill = fill    # 對每一個合並區域中的單元格進行填充
 merged_cells[i][0].value = fill_type    # 在合並塊中左上角單元格中寫入值
    merged_cells[i][0].font = font # 保存工作表
wb.save('test.xlsx')

excel 效果:

 

 

2.2、PatternFill( patternType, fgColor=colors.RED, bgColor=colors.GREEN)

# 對合並的單元格區域填充顏色、寫入填充類型----------------------------------------
for i, fill_type in enumerate(fill_types): # 創建 PatternFill 實例
    fill  = PatternFill(patternType=fill_type, fgColor=colors.RED,    # 前景色
                        bgColor=colors.GREEN    # 背景色
 ) for cell in merged_cells[i]: cell.fill = fill    # 對每一個合並區域中的單元格進行填充
 merged_cells[i][0].value = fill_type    # 在合並塊中左上角單元格中寫入值
    merged_cells[i][0].font = font # 保存工作表
wb.save('test.xlsx')

excel 效果:

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM