600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > python填充excel单元格颜色_openpyxl给excel填充颜色

python填充excel单元格颜色_openpyxl给excel填充颜色

时间:2021-11-23 01:17:19

相关推荐

python填充excel单元格颜色_openpyxl给excel填充颜色

Apple iPhone 11 (A2223) 128GB 黑色 移动联通电信4G手机 双卡双待

4999元包邮

去购买 >

需求介绍

本人的excel数据是之前通过pandas导出的,现在有个需求就是对excel某一列的每个单元格的值进行判断,如果这个值在某一区间内,那么就给这个单元格填充响应的背景颜色。在使用pandas的过程中发现pandas好像并不能实现此功能,所以在假期期间学习了一下openpyxl,使用它操作excel真是太爽了。

数据形式

代码

from openpyxl import load_workbook

from openpyxl.styles import PatternFill

wb = load_workbook("airquality.xlsx")

# 默认选择第一张sheet表

ws = wb.active

# 选取数据区

cells = ws.iter_rows(min_row=2, min_col=6, max_col=6)

# 构建颜色对象,start_color表示前景色,end_color表示背景色。

green_fill = PatternFill("solid", start_color='00E400')

yellow_fill = PatternFill("solid", start_color='FFFF00')

orange_fill = PatternFill('solid', start_color='FF7E00')

red_fill = PatternFill('solid', start_color='FF0000')

pink_fill = PatternFill('solid', start_color='99004C')

maroon_fill = PatternFill('solid', start_color='7E0023')

for i in cells:

# 每行的内容是元组,每个元组只有一个单元格,所以取第一项的value,然后转为int型

value = int(i[0].value)

if value <= 50:

i[0].fill = green_fill

elif 50 < value <= 150:

i[0].fill = yellow_fill

elif 150 < value <= 200:

i[0].fill = orange_fill

elif 200 < value <= 250:

i[0].fill = pink_fill

else:

i[0].fill = maroon_fill

wb.save("new_sheet.xlsx")

wb.close()

最后处理过后的excel为这个样子。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。