如何用Pandas为Excel交替设置行背景色(附现有代码)
实现Excel行交替背景色的修改方案
你需要借助openpyxl的样式模块来设置单元格填充色,在写入DataFrame后遍历工作表行应用交替样式。以下是修改后的完整代码:
import pandas as pd from openpyxl.styles import PatternFill def set_excel(df_list, sheet_list, file_name, columns): # 初始化Excel写入器 writer = pd.ExcelWriter(file_name, engine="openpyxl") # 定义交替填充样式:浅蓝色和白色(可自行调整颜色码) light_blue_fill = PatternFill(start_color="E0F2F7", end_color="E0F2F7", fill_type="solid") white_fill = PatternFill(start_color="FFFFFF", end_color="FFFFFF", fill_type="solid") for dataframe, sheet, columns_list in zip(df_list, sheet_list, columns): # 将DataFrame写入工作表 dataframe.to_excel( writer, sheet_name=sheet, startrow=0, startcol=0, index=False, columns=columns_list, ) # 获取当前工作表对象 ws = writer.sheets[sheet] # 遍历数据行设置交替背景色(表头行保持默认格式) # Excel行号从1开始,DataFrame表头在第1行,数据从第2行开始 total_data_rows = len(dataframe) for row_num in range(2, total_data_rows + 2): # 偶数行设浅蓝色,奇数行设白色(可按需调换逻辑) fill = light_blue_fill if row_num % 2 == 0 else white_fill # 遍历当前行的所有列 for col_num in range(1, len(columns_list) + 1): ws.cell(row=row_num, column=col_num).fill = fill # 保存Excel文件 writer.save()
关键说明:
- 样式自定义:你可以修改
start_color的十六进制值,调整蓝色的深浅或更换其他交替颜色。 - 行号对应逻辑:因为
startrow=0,DataFrame的表头会写入Excel的第1行,数据行从第2行开始,所以遍历范围设为range(2, total_data_rows + 2)(利用Python range左闭右开的特性)。 - 交替规则调整:如果想要奇数行显示蓝色,只需把判断条件改为
row_num % 2 != 0即可。
内容的提问来源于stack exchange,提问作者user19263504
相关产品推荐
相关产品推荐

