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