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

如何用Python获取Pandas读取的Excel文件单元格背景色?

获取Excel单元格背景色的可行方法

pandas仅负责读取单元格数据,不处理格式信息,要获取背景色需借助专门操作Excel格式的库,以下是两种可行方案:

方法一:使用openpyxl(适配.xlsx格式)

  1. 先安装依赖库:
pip install openpyxl
  1. 示例代码:
from openpyxl import load_workbook

# 加载目标Excel文件
wb = load_workbook('你的文件路径.xlsx')
# 选择目标工作表(这里选第一个工作表)
ws = wb.active

# 获取单个单元格的背景色
target_cell = ws['A1']
fill_rgb = target_cell.fill.fgColor.rgb
# 判断是否有背景填充
if fill_rgb:
    print(f"A1单元格背景色RGB值: {fill_rgb}")
else:
    print("A1单元格无背景填充")

# 遍历所有单元格批量获取背景色
for row in ws.iter_rows():
    for cell in row:
        color = cell.fill.fgColor.rgb
        print(f"单元格{cell.coordinate}背景色: {color if color else '无填充'}")

方法二:使用xlrd(仅适配.xls格式)

注意:新版xlrd不再支持.xlsx格式,需安装1.2.0版本:

pip install xlrd==1.2.0

示例代码:

import xlrd

# 加载.xls文件,需开启formatting_info参数
wb = xlrd.open_workbook('你的文件路径.xls', formatting_info=True)
# 选择目标工作表(这里选第一个工作表)
ws = wb.sheet_by_index(0)

# 获取单元格格式索引(行、列均从0开始计数)
xf_index = ws.cell_xf_index(0, 0)
# 获取格式对象与填充格式
xf = wb.xf_list[xf_index]
fill = wb.fill_list[xf.fill_index]

# 转换并输出背景色RGB值
if fill.background_colour_index != 0:
    rgb = wb.colour_map[fill.background_colour_index]
    print(f"A1单元格背景色RGB值: {rgb}")
else:
    print("A1单元格无背景填充")

额外说明

  • openpyxl是当前处理.xlsx格式的主流选择,支持更多复杂格式操作;
  • 若Excel使用主题色而非纯色背景,openpyxl可通过cell.fill.fgColor.theme结合wb.theme完成颜色映射转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 10:30:29