本文へ移動
cccskills
無料GitHub で公開

top-value-coloring

根据数据规模动态选择处理策略,对多表数据进行合并、统计筛选,并利用 openpyxl 实现关键指标的自动化样式高亮与格式化导出。

インストール方法を見る

含まれるファイル(1)

  • SKILL.md3.7 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Step1 提取并合并多个 Sheet 中的关键维度数据,进行数据清洗、类型转换及 Top-N 筛选。

# 示例:合并两个 Sheet 的数据
# 读取 Sheet1 并清洗
df1 = pd.read_excel(file_path, sheet_name='Sheet1', header=None)
# 假设 group_col 在第0列,value_col 在第2列
data1 = df1.iloc[20:, [0, 2]].copy()
data1.columns = ['group_col', 'value_col_1']
data1['value_col_1'] = pd.to_numeric(data1['value_col_1'], errors='coerce')
data1['group_col'] = data1['group_col'].ffill() # 处理合并单元格产生的缺失

# 读取 Sheet2 并清洗
df2 = pd.read_excel(file_path, sheet_name='Sheet2', header=None)
data2 = df2.iloc[5:, [0, 1]].copy()
data2.columns = ['value_col_2', 'value_col_3']

# 合并数据
merged_df = pd.concat([data1.reset_index(drop=True), data2.reset_index(drop=True)], axis=1)
merged_df = merged_df.dropna(subset=['value_col_1'])

# 筛选关键指标前五的数据
top_results = merged_df.nlargest(5, 'value_col_1').copy()

# 占位示例:修正特定缺失值
# top_results.loc[top_results['group_col'].isna(), 'group_col'] = 'Default_Value'

Step2 使用 openpyxl 创建格式化表格,应用条件样式(如特定列标红、最大值高亮)并设置边框与对齐方式。

from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Alignment, Border, Side

output_path = 'analysis_report.xlsx'

# 创建工作簿
wb = Workbook()
ws = wb.active
ws.title = 'Analysis_Results'

# 定义样式
header_fill = PatternFill(start_color='4472C4', end_color='4472C4', fill_type='solid')
header_font = Font(bold=True, color='FFFFFF', size=12)
red_font = Font(color='FF0000', bold=True) # 用于高亮异常或关键值
green_fill = PatternFill(start_color='C6EFCE', end_color='C6EFCE', fill_type='solid') # 用于高亮最大值
thin_border = Border(left=Side(style='thin'), right=Side(style='thin'), 
                     top=Side(style='thin'), bottom=Side(style='thin'))
center_align = Alignment(horizontal='center', vertical='center')

# 写入表头
headers = ['Rank'] + list(top_results.columns)
for col, header in enumerate(headers, 1):
    cell = ws.cell(row=1, column=col, value=header)
    cell.font = header_font
    cell.fill = header_fill
    cell.alignment = center_align
    cell.border = thin_border

# 写入数据并应用样式
for idx, (_, row) in enumerate(top_results.iterrows(), 2):
    # 写入排名
    ws.cell(row=idx, column=1, value=idx-1).border = thin_border
    
    # 写入各列数据
    for col_idx, value in enumerate(row, 2):
        cell = ws.cell(row=idx, column=col_idx, value=value)
        cell.border = thin_border
        
        # 逻辑高亮示例:对特定列(如第4列)应用红色字体
        if col_idx == 4:
            cell.font = red_font
        
        # 逻辑高亮示例:对超过阈值的值应用绿色填充
        # if isinstance(value, (int, float)) and value > threshold_val:
        #     cell.fill = green_fill

# 自动调整列宽
column_widths = {'A': 8, 'B': 30, 'C': 15, 'D': 15, 'E': 18}
for col, width in column_widths.items():
    ws.column_dimensions[col].width = width

# 设置数字格式
for row in range(2, ws.max_row + 1):
    ws.cell(row=row, column=3).number_format = '#,##0'
    ws.cell(row=row, column=4).number_format = '#,##0.00'

wb.save(output_path)
print(f"Formatted file saved to: {output_path}")

Step3 生成并输出结果文件的下载链接。

# 必须使用 sandbox:/ 前缀生成下载链接
print(f"[下载分析结果]({f'sandbox:{output_path}'})")

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

对两类分类数据进行对比分析,统计数量差异与比例关系并生成可视化图表。

日本語の概要は準備中です。原文の説明を表示しています。

OpenSenseNova/SenseNova-Skills5,7572026年10月9日 更新

对Excel数据进行自定义分类统计、交叉分析与可视化,并基于多维度指标(如文本长度、术语密度、正则匹配等)进行综合评分与分级,适用于多类别数据分布统计及文本内容难度/质量评估场景。

日本語の概要は準備中です。原文の説明を表示しています。

OpenSenseNova/SenseNova-Skills5,7572026年10月9日 更新

提取指定类别列并统计各类别数量与占比,生成高分辨率的柱状图、饼图等组合可视化报告,适用于分类数据的分布情况分析。

日本語の概要は準備中です。原文の説明を表示しています。

OpenSenseNova/SenseNova-Skills5,7572026年10月9日 更新

从结构化数据中提取分类分布执行清洗与统计,生成多维度交叉分析、高分辨率对比图表及包含下载链接的完整分析报告,适用于大文件处理与嵌入式可视化场景。

日本語の概要は準備中です。原文の説明を表示しています。

OpenSenseNova/SenseNova-Skills5,7572026年10月9日 更新

根据数据规模动态选择处理策略。

日本語の概要は準備中です。原文の説明を表示しています。

OpenSenseNova/SenseNova-Skills5,7572026年10月9日 更新

动态统计Excel总行数,当数据量过大(≥10000行)时自动转换为Parquet格式加速读取,并对指定目标列进行条件筛选、分类汇总与结果导出,适用于超大体积Excel文件的快速读取与统计分析。

日本語の概要は準備中です。原文の説明を表示しています。

OpenSenseNova/SenseNova-Skills5,7572026年10月9日 更新

OpenSenseNova のスキルをすべて見る

このスキルの問題を報告する