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 效果:
非学无以广才,非志无以成学。
分类:
办公自动化
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架