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

如何用Python的pandas读取带单元格背景色的.xlsx文件?

保留Excel单元格背景色的读取方案

pandas的read_excel仅读取单元格数据,不会保留背景色这类格式信息。要获取单元格背景色,需要借助专门处理Excel格式的库,推荐使用openpyxl(支持.xlsx格式),以下是具体实现步骤:

1. 安装依赖库

pip install openpyxl

2. 读取数据与背景色的代码示例

from openpyxl import load_workbook
import pandas as pd

# 加载Excel工作簿,data_only=True表示读取单元格计算结果而非公式
wb = load_workbook("My_Excel.xlsx", data_only=True)
ws = wb.active  # 获取当前活跃工作表,也可指定表名如wb["Sheet1"]

# 提取单元格数据和对应背景色
data_rows = []
color_rows = []

for row_idx, row in enumerate(ws.iter_rows(values_only=True), start=1):
    data_rows.append(row)
    # 遍历当前行所有单元格,提取背景色
    current_colors = []
    for cell in ws[row_idx]:
        # 获取填充色十六进制值,无填充时默认返回白色FFFFFF
        fill_color = cell.fill.start_color.index if cell.fill.start_color.index else "FFFFFF"
        current_colors.append(fill_color)
    color_rows.append(current_colors)

# 将数据转为DataFrame
df = pd.DataFrame(data_rows)
# 背景色也可转为DataFrame,方便与数据对应查看
color_df = pd.DataFrame(color_rows)

补充说明

  • 你可以通过df查看原始单元格数据,color_df查看对应位置的背景色十六进制值,两者行列完全对应。
  • 如果需要处理旧版.xls格式文件,可使用xlrd库(注意:xlrd 2.0及以上版本不再支持.xlsx格式),逻辑类似,通过xlrd的单元格格式属性提取背景色。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 13:12:06