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

如何检测Excel(.xlsx)行内单元格背景颜色并输出HEX或RGB值

表格示例

你可以使用openpyxl库提取Excel单元格背景色,和你已有的DataFrame做行列匹配,具体实现如下:

环境依赖安装

pip install openpyxl pandas

完整实现代码

from openpyxl import load_workbook
import pandas as pd

# 替换为你的实际文件路径和工作表名称
EXCEL_FILE = "your_file.xlsx"
TARGET_SHEET = "Sheet1"

# 加载Excel工作簿与已有的原始DataFrame
wb = load_workbook(EXCEL_FILE, data_only=True)
worksheet = wb[TARGET_SHEET]
raw_df = pd.read_excel(EXCEL_FILE, sheet_name=TARGET_SHEET)

# 初始化存储背景色的DataFrame,结构与原始DataFrame完全一致
color_df = pd.DataFrame(columns=raw_df.columns, index=raw_df.index)

# 遍历所有数据单元格提取背景色
# 注:默认Excel第一行为表头,数据从第二行开始,若你的表格结构不同可自行调整行偏移量
for row in range(raw_df.shape[0]):
    for col in range(raw_df.shape[1]):
        # openpyxl的行、列索引从1开始,数据行需偏移+2对应df的0起始索引
        cell = worksheet.cell(row=row + 2, column=col + 1)
        # 提取ARGB格式的背景色值
        argb_value = cell.fill.fgColor.rgb
        # 转为标准6位HEX格式
        hex_color = f"#{argb_value[2:]}"
        # 无填充背景的特殊处理,可按需修改默认值
        if argb_value == "00000000":
            hex_color = "#FFFFFF"
        color_df.iloc[row, col] = hex_color

# 合并原始数据与背景色结果
output_df = pd.concat(
    [raw_df.add_suffix("_value"), color_df.add_suffix("_bg_hex")],
    axis=1
)

# 打印输出结果
print(output_df)

可选扩展

如果需要输出RGB格式值,可增加格式转换逻辑:

# 将HEX转为RGB元组
rgb_color = tuple(int(hex_color.lstrip("#")[i:i+2], 16) for i in (0, 2, 4))

如果你的表格没有表头,数据从第一行开始,把遍历逻辑中的row + 2修改为row + 1即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:57:02