You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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()

关键说明:

  1. 样式自定义:你可以修改start_color的十六进制值,调整蓝色的深浅或更换其他交替颜色。
  2. 行号对应逻辑:因为startrow=0,DataFrame的表头会写入Excel的第1行,数据行从第2行开始,所以遍历范围设为range(2, total_data_rows + 2)(利用Python range左闭右开的特性)。
  3. 交替规则调整:如果想要奇数行显示蓝色,只需把判断条件改为row_num % 2 != 0即可。

内容的提问来源于stack exchange,提问作者user19263504

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 20:25:39