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

如何用XlsxWriter按Outcome和Severity分组并高亮排序数据?

使用XlsxWriter实现指定行置顶高亮+其余行排序

核心逻辑拆解

  1. 从原始数据中筛选出Outcome=FAIL且Severity=HIGH的行,这部分放在表格最顶部并高亮
  2. 剩余数据按指定列(如Severity或Outcome)降序排列
  3. 用XlsxWriter写入Excel时,给高亮行单独应用单元格格式

完整代码示例

假设用pandas读取原始表格数据(纯列表/字典数据逻辑类似,仅处理方式不同):

import pandas as pd
import xlsxwriter

# 1. 读取原始数据(替换为你的文件路径)
df = pd.read_excel("原始表格.xlsx")

# 2. 拆分数据:高亮行 + 其余排序行
highlight_rows = df[(df["Outcome"] == "FAIL") & (df["Severity"] == "HIGH")]
# 剩余行按Severity降序排列,可按需修改排序键
remaining_rows = df[~((df["Outcome"] == "FAIL") & (df["Severity"] == "HIGH"))].sort_values(by="Severity", ascending=False)

# 3. 合并处理后的数据:高亮行在前,排序行在后
processed_df = pd.concat([highlight_rows, remaining_rows], ignore_index=True)

# 4. 创建Excel写入对象和格式
with pd.ExcelWriter("处理后表格.xlsx", engine="xlsxwriter") as writer:
    processed_df.to_excel(writer, sheet_name="Sheet1", index=False)
    workbook = writer.book
    worksheet = writer.sheets["Sheet1"]
    
    # 定义红色高亮格式
    highlight_format = workbook.add_format({"bg_color": "#FFC7CE", "font_color": "#9C0006"})
    
    # 5. 给高亮行应用格式(从第2行开始,跳过表头)
    highlight_count = len(highlight_rows)
    if highlight_count > 0:
        for row in range(1, highlight_count + 1):
            worksheet.set_row(row, None, highlight_format)
    
    # 可选:自动调整列宽
    for col_num, col_name in enumerate(processed_df.columns):
        worksheet.set_column(col_num, col_num, len(col_name) + 2)

关键细节说明

  • 排序逻辑:代码默认按Severity降序,需调整排序列时,修改sort_values(by="你的目标列名")即可
  • 高亮格式:可自定义背景色、字体色,颜色用十六进制值,支持所有标准HTML颜色
  • 非Excel数据源:若原始数据是列表/字典,只需将数据转换为DataFrame,或直接遍历拆分后再写入

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 18:57:17