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

如何为openpyxl生成的输出Excel文件高亮行与列?

解决方法

要实现输出文件中行和列的高亮效果,你可以借助openpyxl的样式模块PatternFill来设置单元格填充颜色。以下是修改后的完整代码:

from openpyxl import load_workbook, Workbook
from openpyxl.styles import PatternFill

def find(wb, string):
    res = []
    for ws in wb:
        for row in ws.values:
            for value in row:
                if value is not None and string in str(value):
                    res.append(value)
    return res

if __name__ == '__main__':
    # 使用原始字符串避免路径转义问题
    wb = load_workbook(r"C:\Book1.xlsx")
    values = find(wb, "NAS019")

    wb = Workbook()
    ws = wb.active
    # 定义高亮填充样式(这里用黄色,可根据需求修改颜色代码)
    highlight_fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")

    for value in values:
        ws.append([value])
        # 获取当前写入的行号
        current_row = ws.max_row
        # 高亮当前整行的所有单元格
        for cell in ws[current_row]:
            cell.fill = highlight_fill
        # 若需要高亮整个A列(含空行),可替换为下面的代码:
        # ws.column_dimensions['A'].fill = highlight_fill

    # 保存文件,同样用原始字符串避免转义
    wb.save(filename=r"C:\Book2.xlsx")

关键说明:

  • 样式自定义:通过PatternFill创建纯色填充样式,你可以替换start_color和end_color的十六进制值更改高亮颜色(比如"FFC0CB"对应粉色)。
  • 行高亮逻辑:每次写入数据后,获取当前行号,遍历该行所有单元格并应用高亮样式,实现整行高亮。
  • 列高亮选择:如果需要高亮整个A列(包括空行),直接启用注释里的column_dimensions代码即可;若只需要高亮有数据的列区域,当前整行高亮的逻辑已经覆盖了对应列的单元格。
  • 路径处理:使用原始字符串r"路径"避免Windows路径中的转义字符问题,防止代码报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 23:18:26