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

如何为REST API导出至Excel的风险类数据添加校验高亮逻辑?

解决方案:两种方式实现不符合规则数据的高亮/告警

方式一:Pandas导出时直接配置Excel条件格式

这种方式能让导出的Excel直接自带高亮规则,无需后续手动调整,适合自动化流程。

核心是借助openpyxl引擎(Pandas导出Excel支持该引擎),给目标单元格设置条件格式规则。代码示例:

import pandas as pd
from openpyxl.styles import PatternFill
from openpyxl.utils.dataframe import dataframe_to_rows
from openpyxl import Workbook

# 假设你的API数据已存入df
# df = pd.DataFrame(...)  # 从REST API获取的数据集

# 创建工作簿和工作表
wb = Workbook()
ws = wb.active

# 将DataFrame写入工作表
for row in dataframe_to_rows(df, index=False, header=True):
    ws.append(row)

# 定义高亮样式(红色填充,可自定义颜色代码)
red_fill = PatternFill(start_color='FFC7CE', end_color='FFC7CE', fill_type='solid')

# 给CI列设置条件格式:Service为Risk且CI不在指定列表时高亮
# 注意列对应关系:Service是第6列(F列),CI是第7列(G列),数据从第2行开始
ws.conditional_formatting.add(
    f'G2:G{len(df)+1}',
    {
        'type': 'formula',
        'formula': ['AND($F2="Risk", NOT(OR($G2="RMP", $G2="SAP", $G2="Aravo")))'],
        'stopIfTrue': False,
        'fill': red_fill
    }
)

# 保存文件
wb.save('incidents_with_validation.xlsx')

如果习惯用xlsxwriter引擎,逻辑类似,只需替换对应的条件格式API即可。

方式二:在Excel中手动设置条件格式(解决你IF函数失效的问题)

若不想修改代码,直接在已导出的Excel中操作:

  1. 选中CI列的所有数据单元格(比如G2到最后一行)
  2. 点击「开始」→「条件格式」→「新建规则」
  3. 选择「使用公式确定要设置格式的单元格」
  4. 在公式框输入:
    =AND($F2="Risk", NOT(OR($G2="RMP", $G2="SAP", $G2="Aravo")))
    
    注意:$F2对应你的Service列,$G2对应CI列,根据实际列位置调整
  5. 点击「格式」设置填充颜色(比如红色),确认后保存即可。

你之前用IF函数失败,大概率是只通过IF返回文本提示,没结合条件格式触发样式。直接用条件格式的公式规则,能直接定位并高亮不符合条件的单元格,比单独用IF更高效。

额外选项:导出前用Pandas生成告警列表

如果需要提前筛选出不符合规则的数据单独留存,可以在DataFrame中新增标记列:

# 新增标记列
df['不符合规则'] = df.apply(
    lambda x: '是' if x['Service'] == 'Risk' and x['CI'] not in ['RMP', 'SAP', 'Aravo'] else '否',
    axis=1
)

# 单独导出不符合规则的数据作为告警文件
df[df['不符合规则'] == '是'].to_excel('invalid_incidents_alert.xlsx', index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 18:24:26