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

如何使用Python读取XLSX文件中的彩色行?

我来帮你搞定这个需求——用Python提取XLSX文件里带背景色的行内容,刚好之前处理过类似场景,给你一套可行的方案:

实现步骤

首先我们需要用到openpyxl库,它能完美处理XLSX的样式读取,先安装它:

pip install openpyxl

接下来是核心代码,我会加上详细注释,方便你调整:

from openpyxl import load_workbook

# 加载你的XLSX文件,替换成实际文件名
wb = load_workbook('your_target_file.xlsx', data_only=True)
# 选择要操作的工作表,这里用默认的活跃工作表,也可以换成表名比如wb['Sheet1']
ws = wb.active

# 第一步:先获取目标彩色行的RGB值(重要!)
# 你可以先运行这段测试代码,打印出所有行第一个单元格的填充色RGB
# for row_num in range(1, ws.max_row + 1):
#     cell = ws.cell(row=row_num, column=1)
#     print(f"行{row_num}的填充色RGB: {cell.fill.start_color.rgb}")

# 把上面测试得到的彩色行RGB填到这里,比如假设是黄色的FFFF00
target_rgb = 'FFFF00'

# 存储提取到的内容
extracted_content = []

# 遍历每一行(openpyxl的行号从1开始,和Excel一致)
for row in ws.iter_rows(min_row=1, max_row=ws.max_row):
    # 检查该行第一个单元格的填充色(如果是整行彩色,取第一个单元格就够了)
    cell_fill_rgb = row[0].fill.start_color.rgb
    # 注意:有些默认无填充的单元格RGB可能是'00000000',要区分开
    if cell_fill_rgb == target_rgb:
        # 提取该行的所有非空值,拼接成字符串(按需调整格式)
        row_data = [str(cell.value) for cell in row if cell.value is not None]
        extracted_content.append(' '.join(row_data))

# 输出结果,就是你要的彩色行内容
print("\n".join(extracted_content))
关键注意事项
  • 获取准确的RGB值:不同的填充色RGB不一样,一定要先运行测试代码打印出目标行的RGB,再替换到target_rgb里,不然会匹配不到。
  • 整行/部分单元格彩色:如果你的彩色行不是整行填充,而是部分单元格有颜色,可以把判断逻辑改成检查该行是否有任意一个单元格的RGB匹配目标值。
  • 公式处理:data_only=True参数会读取单元格的计算结果,而不是公式本身,如果你的文件里有公式,这个参数很有用。

运行完代码后,就能得到你需要的4、5、6行和10、11、12行的内容啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 04:34:05