openpyxl给excel填充颜色

SyntaxError

需求介绍

本人的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为这个样子。

阅读 2.3k
193 声望
12 粉丝
0 条评论
你知道吗?

193 声望
12 粉丝
文章目录
宣传栏