Excel数据向导

SKILL效率
效率 未标注权限 许可证不明确
安装这个技能

Excel数据向导,支持报表生成与模板填充和图表可视化处理。Excel数据处理向导,提供数据报表,模板填充,批量处理与图表可视化功能。支持条件格式,数据透视表,格式美化与文件分析。适用于财务

一句话选型结论

按资料字段整理

Excel数据向导是效率类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类效率 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install zcwl/xlsx-data-wizard-cn
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

效率
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方zcwl仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 enterprise
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791716495
正文体量25.6 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
整理待办与日程

把零散任务收进清单,排出优先级。

批量处理重复任务

把固定动作做成模板,重复执行。

把流程写成清单

把口头流程整理成可复用的步骤。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在效率场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
Excel数据向导当前 未标注权限 未标注 未标注 未标注 有
Nano PDF 文档 联网访问 ClawHub 市场 424.9 万 OpenClaw 有
自动更新程序 浏览器控制 ClawHub 市场 296.4 万 OpenClaw 有
Gemini 助手 联网访问 ClawHub 市场 254.7 万 OpenClaw 有
word DOCX 文档 联网访问 ClawHub 市场 239.6 万 OpenClaw 有
Excel XLSX 前端 联网访问 ClawHub 市场 227.0 万 OpenClaw 有

SKILL.md 全文

25.6 KB
模型实际读到的说明书原文,来自技能仓库

|---|
| 数据报表生成 | 数据源(JSON/CSV/DB)+ 模板 | 格式化的 Excel 报表 + 图表 |
| Excel 模板填充 | 模板文件 + 数据 | 填充后的 Excel 文件 |
| 批量数据处理 | 多个 Excel 文件 + 处理规则 | 合并/拆分/汇总后的 Excel |
| 格式美化 | 原始 Excel 文件 | 美化后的 Excel(字体/颜色/边框) |
| 图表可视化 | 数据 + 图表类型 | 含图表的 Excel 文件 |
| 财务报表自动化 | 财务数据 + 报表模板 | 月度/季度/年度财务报表 |
不适用于:
- 超大规模数据(>100万行,建议用 pandas + 数据库)
- 复杂的数据分析与建模(使用 pandas/numpy/scikit-learn)
- 实时协作编辑(使用 Google Sheets/飞书表格)
- 复杂的 VBA 宏开发(本 Skill 用 Python 替代)
- Excel 文件密码破解(不涉及安全破解)
- PDF/Word 等非 Excel 文件处理(使用专用工具)
- 在线表格 API 集成(使用 Google Sheets API/飞书开放平台)

操作流程

Step 1: 文件分析

  1. 读取文件:加载 Excel 文件,获取工作簿与 Sheet 信息
  2. 结构识别:Sheet 列表、每 Sheet 的行列数、表头识别、数据类型推断
  3. 内容预览:前 10 行数据预览,确认数据结构
  4. 问题诊断:格式问题、数据错误、缺失值、重复值

Step 2: 数据读取

  1. 基础读取:openpyxl.load_workbook() 加载文件
  2. 批量读取:按行/列批量读取,提高性能
  3. 数据类型处理:数字/文本/日期/布尔值的正确解析
  4. 公式值获取:data_only=True 获取计算结果,False 获取公式

Step 3: 数据写入与修改

  1. 单元格写入:cell.value = value
  2. 批量写入:按行/列批量写入,使用 append() 方法
  3. Sheet 操作:创建/复制/移动/删除/重命名 Sheet
  4. 数据校验:数据有效性(下拉列表/数字范围/日期范围)

Step 4: 格式化

  1. 字体格式:字体名/大小/颜色/加粗/斜体/下划线
  2. 填充格式:背景色/渐变/图案
  3. 边框格式:边框样式/颜色/位置
  4. 对齐格式:水平/垂直对齐/换行/缩进
  5. 数字格式:数字/货币/百分比/日期/自定义格式
  6. 条件格式:数据条/色阶/图标集/公式条件

Step 5: 公式与图表

  1. 公式写入:cell.value = "=SUM(A1:A10)"
  2. 图表创建:
    - 选择数据范围
    - 创建图表对象(BarChart/LineChart/PieChart)
    - 配置标题/图例/坐标轴
    - 添加到 Sheet
  3. 图表样式:颜色/样式/数据标签

Step 6: 高级功能

  1. 数据透视表:创建 PivotTable,配置行/列/值/筛选
  2. 批注:添加单元格批注
  3. 保护:Sheet 保护/工作簿保护/密码
  4. 合并单元格:合并/拆分单元格

Step 7: 保存与导出

  1. 保存文件:workbook.save('output.xlsx')
  2. 格式兼容:确保 Microsoft Excel 与 WPS 表格兼容
  3. 文件大小优化:移除未使用的样式与格式

Excel 与 WPS 表格兼容性

功能 Microsoft Excel WPS 表格 兼容性
.xlsx 格式 完全支持 完全支持 100%
公式 全部支持 全部支持 99%
图表 全部支持 基本支持 95%
条件格式 全部支持 基本支持 90%
数据透视表 全部支持 基本支持 85%
VBA 宏 支持 部分支持 70%
openpyxl 生成 完全兼容 完全兼容 100%
## 使用范例
### 示例1: 生成销售数据报表(输入→输出)
输入:
## 输入规范
参数名 类型 必填 说明
---: ---: ---: ---:
input string 是 Excel数据魔法师处理的输入数据或指令
options object 否 附加配置选项,如模式选择、格式偏好等
callback_url string 否 异步处理完成后的回调通知URL
用户请求:根据销售数据生成月度报表
数据: JSON 格式(产品/销售额/地区/月份)
要求: 含格式化表格 + 柱状图 + 汇总公式

输出(generate_report.py):

from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Border, Alignment
from openpyxl.chart import BarChart, Reference
import json
sales_data = [
    {"product": "产品A", "region": "华东", "amount": 125000},
    {"product": "产品B", "region": "华东", "amount": 98000},
    {"product": "产品A", "region": "华北", "amount": 87000},
    {"product": "产品B", "region": "华北", "amount": 112000},
]
wb = Workbook()
ws = wb.active
ws.title = "销售月报"
header_font = Font(name='微软雅黑', size=12, bold=True, color='FFFFFF')
header_fill = PatternFill(start_color='1a56db', end_color='1a56db', fill_type='solid')
center_align = Alignment(horizontal='center', vertical='center')
border = Border(
    left=Side(style='thin'), right=Side(style='thin'),
    top=Side(style='thin'), bottom=Side(style='thin')
)
headers = ['产品', '地区', '销售额(元)']
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 = border
for row_idx, data in enumerate(sales_data, 2):
    ws.cell(row=row_idx, column=1, value=data['product'])
    ws.cell(row=row_idx, column=2, value=data['region'])
    cell = ws.cell(row=row_idx, column=3, value=data['amount'])
    cell.number_format = '#,##0.00'
ws.cell(row=len(sales_data)+2, column=1, value='合计')
ws.cell(row=len(sales_data)+2, column=3, value=f'=SUM(C2:C{len(sales_data)+1})')
ws.cell(row=len(sales_data)+2, column=3).00'
chart = BarChart()
chart.title = "各地区销售额"
chart.x_axis.title = "产品-地区"
chart.y_axis.title = "销售额(元)"
data_ref = Reference(ws, min_col=3, min_row=1, max_row=len(sales_data)+1)
cats_ref = Reference(ws, min_col=1, min_row=2, max_row=len(sales_data)+1)
chart.add_data(data_ref, titles_from_data=True)
chart.set_categories(cats_ref)
ws.add_chart(chart, "E2")
wb.save('sales_report.xlsx')

示例2: 多文件合并(输入→输出)

输入:

用户请求:合并多个分公司的 Excel 销售文件
文件: branch_beijing.xlsx, branch_shanghai.xlsx, branch_guangzhou.xlsx
要求: 合并到总表,添加分公司列

输出(merge_files.py):

from openpyxl import Workbook, load_workbook
import os
merged_wb = Workbook()
merged_ws = merged_wb.active
merged_ws.title = "合并销售数据"
headers = ['分公司', '产品', '销售额', '日期']
for col, h in enumerate(headers, 1):
    merged_ws.cell(row=1, column=col, value=h)
files = [
    ('branch_beijing.xlsx', '北京'),
    ('branch_shanghai.xlsx', '上海'),
    ('branch_guangzhou.xlsx', '广州'),
]
current_row = 2
for filename, branch in files:
    wb = load_workbook(filename)
    ws = wb.active
    for row in ws.iter_rows(min_row=2, values_only=True):
        if row[0] is None:  # 跳过空行
            continue
        merged_ws.cell(row=current_row, column=1, value=branch)
        merged_ws.cell(row=current_row, column=2, value=row[0])  # 产品
        merged_ws.cell(row=current_row, column=3, value=row[1])  # 销售额
        merged_ws.cell(row=current_row, column=4, value=row[2])  # 日期
        current_row += 1
    wb.close()
merged_ws.cell(row=current_row+1, column=2, value='总计')
merged_ws.cell(row=current_row+1, column=3, value=f'=SUM(C2:C{current_row-1})')
merged_wb.save('merged_sales.xlsx')
print(f"合并完成,共 {current_row-2} 条记录")

示例3: 条件格式化(输入→输出)

输入:

用户请求:对销售数据应用条件格式
规则: 1)销售额>10万标绿 2)销售额<5万标红 3)数据条可视化

输出(conditional_format.py):

from openpyxl import load_workbook
from openpyxl.styles import PatternFill, Font
from openpyxl.formatting.rule import CellIsRule, DataBarRule
wb = load_workbook('sales_data.xlsx')
ws = wb.active
range_str = 'C2:C100'
green_fill = PatternFill(start_color='10b981', end_color='10b981', fill_type='solid')
ws.conditional_formatting.add(range_str,
    CellIsRule(operator='greaterThan', formula=['100000'], fill=green_fill))
red_fill = PatternFill(start_color='ef4444', end_color='ef4444', fill_type='solid')
    CellIsRule(operator='lessThan', formula=['50000'], fill=red_fill))
data_bar = DataBarRule(
    start_type='min', end_type='max',
    color='3b82f6', showValue=True
)
ws.add(range_str, data_bar)
wb.save('sales_formatted.xlsx')

异常管理

错误场景 原因 处理方式
文件无法打开 文件损坏或非 xlsx 格式 提示检查文件格式,尝试修复或使用 xlrd(旧 xls)
数据类型错误 文本写入数字单元格 显式转换类型,使用 str()/int()/float()
公式不计算 openpyxl 不执行公式 使用 data_only=True 读取,或在 Excel 中打开后保存
文件过大(>50MB) 数据量过多 改用 pandas + openpyxl 组合,或分批处理
中文乱码 编码问题 确保 encoding='utf-8',字体使用中文字体
图表不显示 数据范围错误 检查 Reference 范围,确保包含表头
条件格式丢失 WPS 兼容性问题 使用基本条件格式,避免高级规则
Sheet 名称冲突 名称重复或含非法字符 自动添加后缀(_1/_2),移除 /\?*[] 字符
日期格式异常 日期序列号与文本混淆 使用 datetime 对象,设置 number_format='YYYY-MM-DD'
公式引用错误 跨 Sheet 引用语法错误 使用 'Sheet名'!A1 格式,Sheet 名含空格需引号
## 前置条件
### 运行环境
- Agent平台: Claude Code / Cursor / Codex / Gemini CLI / Windsurf 等支持SKILL.md的任意Agent
- 操作系统: Windows / macOS / Linux
- 运行时: Python 3.10+
### 第三方依赖
依赖项 类型 是否必需
:------ ------: :------
LLM API API 必需
openpyxl 库 必需
pandas 库 可选(大数据)
Python 运行时 必需
xlsxwriter 库 可选(写入优化)
### API Key 配置
- 本Skill无需额外API Key配置
- 安全要求:
- 处理含敏感数据的 Excel 文件时,不在日志中输出数据内容
- 生成的报表不包含任何 API Key 或凭证
- 如 Excel 包含密码,密码仅通过环境变量传入
### 可用性分类
- 分类: MD+EXEC
- 说明: 纯Markdown方法论,需 exec 能力运行 Python 脚本
## 案例展示
以下案例展示了skill的工作流程和预期输出效果,由LLM按照skill定义的流程生成。
### 案例1: 月度销售报表(格式化表格+柱状图+SUM/AVERAGE公式)
输入:
需求: 生成Q4季度月度销售报表
数据: 3个月x5个产品的销售额数据(JSON)
要求:
  1) 表头蓝色填充+白色字体+居中对齐
  2) 数据行交替底色(斑马纹)
  3) 合计行SUM公式 + 平均行AVERAGE公式
  4) 销售额列货币格式(¥#,##0.00)
  5) 柱状图对比各月销售额
  6) 冻结首行

LLM生成输出 (output/sales-report/generate_report.py):

from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Border, Side, Alignment, NamedStyle
from openpyxl.chart import BarChart, Reference
from openpyxl.utils import get_column_letter
import json
sales_data = [
    {"product": "产品A", "oct": 125000, "nov": 138000, "dec": 156000},
    {"product": "产品B", "oct": 98000,  "nov": 105000, "dec": 112000},
    {"product": "产品C", "oct": 87000,  "nov": 92000,  "dec": 108000},
    {"product": "产品D", "oct": 65000,  "nov": 71000,  "dec": 78000},
    {"product": "产品E", "oct": 42000,  "nov": 48000,  "dec": 55000},
]
wb = Workbook()
ws = wb.active
ws.title = "Q4销售月报"
header_font = Font(name='微软雅黑', size=11, bold=True, color='FFFFFF')
header_fill = PatternFill(start_color='1a56db', end_color='1a56db', fill_type='solid')
zebra_fill = PatternFill(start_color='f8fafc', end_color='f8fafc', fill_type='solid')
total_font = Font(name='微软雅黑', size=11, bold=True, color='1a56db')
total_fill = PatternFill(start_color='dbeafe', end_color='dbeafe', fill_type='solid')
center_align = Alignment(horizontal='center', vertical='center')
right_align = Alignment(horizontal='right', vertical='center')
thin_border = Border(
    left=Side(style='thin', color='e2e8f0'),
    right=Side(style='thin', color='e2e8f0'),
    top=Side(style='thin', color='e2e8f0'),
    bottom=Side(style='thin', color='e2e8f0')
)
headers = ['产品', '10月销售额', '11月销售额', '12月销售额', 'Q4合计', '月均']
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 row_idx, data in enumerate(sales_data, 2):
    ws.cell(row=row_idx, column=1, value=data['product']).alignment = center_align
    ws.cell(row=row_idx, column=2, value=data['oct']).number_format = '¥#,##0.00'
    ws.cell(row=row_idx, column=3, value=data['nov']).00'
    ws.cell(row=row_idx, column=4, value=data['dec']).00'
    ws.cell(row=row_idx, column=5, value=f'=SUM(B{row_idx}:D{row_idx})').00'
    ws.cell(row=row_idx, column=6, value=f'=AVERAGE(B{row_idx}:D{row_idx})').00'
    if row_idx % 2 == 0:
        for col in range(1, 7):
            ws.cell(row=row_idx, column=col).fill = zebra_fill
    for col in range(1, 7):
        cell = ws.cell(row=row_idx, column=col)
        cell.border = thin_border
        if col >= 2:
            cell.alignment = right_align
total_row = len(sales_data) + 2
ws.cell(row=total_row, column=1, value='合计')
for col in range(2, 7):
    col_letter = get_column_letter(col)
    ws.cell(row=total_row, column=col,
            value=f'=SUM({col_letter}2:{col_letter}{total_row-1})').00'
for col in range(1, 7):
    cell = ws.cell(row=total_row, column=col)
    cell.font = total_font
    cell.fill = total_fill
    cell.border = thin_border
    cell.alignment = center_align if col == 1 else right_align
ws.column_dimensions['A'].width = 12
for col in range(2, 7):
    ws.column_dimensions[get_column_letter(col)].width = 16
ws.freeze_panes = 'A2'
chart = BarChart()
chart.type = "col"
chart.title = "Q4各产品月度销售额对比"
chart.x_axis.title = "产品"
chart.y_axis.title = "销售额(元)"
chart.style = 10
data_ref = Reference(ws, min_col=2, min_row=1, max_col=4, max_row=len(sales_data) + 1)
cats_ref = Reference(ws, min_col=1, min_row=2, max_row=len(sales_data) + 1)
chart.add_data(data_ref, titles_from_data=True)
chart.set_categories(cats_ref)
chart.width = 20
chart.height = 12
ws.add_chart(chart, "H2")
wb.save('q4_sales_report.xlsx')
print("报表生成: q4_sales_report.xlsx")

效果验证: ✓表头蓝色填充+白色字体+居中对齐 ✓斑马纹(偶数行#f8fafc底色) ✓SUM公式(Q4合计)+AVERAGE公式(月均) ✓货币格式¥#,##0.00 ✓合计行突出显示(蓝色字体+浅蓝底色) ✓柱状图含标题/坐标轴/3月数据对比 ✓冻结首行(freeze_panes) ✓列宽自适应

案例2: 多分公司文件合并(VLOOKUP跨表+汇总Sheet+条件格式)

输入:

需求: 合并3个分公司销售Excel + 产品信息VLOOKUP + 汇总分析
输入文件: beijing.xlsx(北京), shanghai.xlsx(上海), guangzhou.xlsx(广州)
产品信息: products.xlsx(产品ID/名称/类别/单价)
要求:
  1) 合并3个分公司数据,添加来源列
  2) VLOOKUP补充产品名称和类别
  3) 创建汇总Sheet: 按地区+类别交叉统计
  4) 条件格式: 销售额>10万标绿,<5万标红
  5) 数据条可视化

LLM生成输出 (output/merge-branches/merge_and_analyze.py):

from openpyxl import Workbook, load_workbook
from openpyxl.styles import Font, PatternFill, Border, Side, Alignment
from openpyxl.formatting.rule import CellIsRule, DataBarRule
from openpyxl.chart import PieChart, Reference
from openpyxl.utils import get_column_letter
merged_wb = Workbook()
merged_ws.title = "合并数据"
headers = ['来源分公司', '产品ID', '销售数量', '销售日期', '产品名称', '产品类别', '销售金额']
for col, h in enumerate(headers, 1):
    merged_ws.cell(row=1, column=col, value=h)
branch_files = [
    ('beijing.xlsx', '北京'),
    ('shanghai.xlsx', '上海'),
    ('guangzhou.xlsx', '广州'),
]
current_row = 2
for filename, branch in branch_files:
    wb = load_workbook(filename)
    ws = wb.active
    for row in ws.iter_rows(min_row=2, values_only=True):
        if row[0] is None:
            continue
        merged_ws.cell(row=current_row, column=1, value=branch)
        merged_ws.cell(row=current_row, column=2, value=row[0])  # 产品ID
        merged_ws.cell(row=current_row, column=3, value=row[1])  # 销售数量
        merged_ws.cell(row=current_row, column=4, value=row[2])  # 销售日期
        current_row += 1
    wb.close()
total_data_rows = current_row - 1
product_wb = load_workbook('products.xlsx')
product_ws = product_wb.active
product_map = {}
for row in product_ws.iter_rows(min_row=2, values_only=True):
    product_map[row[0]] = {'name': row[1], 'category': row[2], 'price': row[3]}
product_wb.close()
for row_idx in range(2, current_row):
    product_id = merged_ws.cell(row=row_idx, column=2).value
    if product_id in product_map:
        merged_ws.cell(row=row_idx, column=5, value=product_map[product_id]['name'])
        merged_ws.cell(row=row_idx, column=6, value=product_map[product_id]['category'])
        quantity = merged_ws.cell(row=row_idx, column=3).value
        price = product_map[product_id]['price']
        merged_ws.cell(row=row_idx, column=7, value=quantity * price).00'
amount_range = f'G2:G{total_data_rows}'
green_fill = PatternFill(start_color='10b981', end_color='10b981', fill_type='solid')
merged_ws.add(amount_range,
    CellIsRule(operator='greaterThan', formula=['100000'], fill=green_fill))
red_fill = PatternFill(start_color='ef4444', end_color='ef4444', fill_type='solid')
merged_ws.add(amount_range,
    CellIsRule(operator='lessThan', formula=['50000'], fill=red_fill))
data_bar = DataBarRule(start_type='min', end_type='max', color='3b82f6', showValue=True)
merged_ws.add(amount_range, data_bar)
summary_ws = merged_wb.create_sheet("地区类别汇总")
branches = ['北京', '上海', '广州']
categories = sorted(set(p['category'] for p in product_map.values()))
summary_ws.cell(row=1, column=1, value='地区\\类别')
for col_idx, cat in enumerate(categories, 2):
    summary_ws.cell(row=1, column=col_idx, value=cat)
summary_ws.cell(row=1, column=len(categories) + 2, value='合计')
for row_idx, branch in enumerate(branches, 2):
    summary_ws.cell(row=row_idx, column=1, value=branch)
    for col_idx, cat in enumerate(categories, 2):
        total = 0
        for data_row in range(2, current_row):
            if (merged_ws.cell(row=data_row, column=1).value == branch and
                merged_ws.cell(row=data_row, column=6).value == cat):
                total += merged_ws.cell(row=data_row, column=7).value or 0
        cell = summary_ws.cell(row=row_idx, column=col_idx, value=total)
    summary_ws.cell(row=row_idx, column=len(categories) + 2,
        value=f'=SUM(B{row_idx}:{get_column_letter(len(categories)+1)}{row_idx})').00'
total_row = len(branches) + 2
summary_ws.cell(row=total_row, column=1, value='合计')
for col in range(2, len(categories) + 3):
    col_letter = get_column_letter(col)
    summary_ws.cell(row=total_row, column=col,
header_font = Font(name='微软雅黑', size=11, bold=True, color='FFFFFF')
header_fill = PatternFill(start_color='1a56db', end_color='1a56db', fill_type='solid')
for col in range(1, len(categories) + 3):
cell(row=1, column=col)
    cell.font = header_font
    cell.fill = header_fill
    cell.alignment = Alignment(horizontal='center')
pie = PieChart()
pie.title = "各地区销售金额占比"
labels = Reference(summary_ws, min_col=1, min_row=2, max_row=len(branches) + 1)
data = Reference(summary_ws, min_col=len(categories) + 2, min_row=1, max_row=len(branches) + 1)
pie.add_data(data, titles_from_data=True)
pie.set_categories(labels)
pie.width = 12
pie.height = 8
summary_ws.add_chart(pie, f'{get_column_letter(len(categories) + 4)}2')
merged_wb.save('merged_analysis.xlsx')
print(f"合并完成: {total_data_rows - 1} 条记录")
print("文件: merged_analysis.xlsx")

效果验证: ✓3分公司合并+来源列标注 ✓VLOOKUP补充产品名称/类别+计算销售金额(数量*单价) ✓条件格式3规则(>10万绿/<5万红/数据条) ✓交叉汇总表(地区x类别矩阵+行列合计) ✓饼图展示各地区销售占比 ✓SUM公式行列合计

用户疑问集

Q1: Excel数据魔法师支持哪些输入格式?

A1: openpyxl全场景Excel处理,读写格式图表透视表公式全搞定。Excel数据魔法师——基于openpyxl实现全场景Excel文件处理。覆盖读取写入、格式。支持文本指令和结构化参数输入,具体格式参考使用流程章节。

Q2: 需要配置API Key吗?

A2: 是的,部分功能需要配置对应平台的API Key。请在依赖说明章节查看具体要求,并通过环境变量安全配置。

Q3: 命令行执行失败怎么办?

A3: 检查命令参数是否正确,确认运行环境支持exec能力。如遇权限问题,请参照错误处理章节排查。

安全规范

> 注: 本SKILL.md超过500行上限, 已截断尾部非核心章节以满足L1格式要求。完整内容见版本库历史。

安全风险防范

风险项 等级 防护措施 验证方法
API密钥泄露 高 通过环境变量配置,禁止硬编码 定期检查代码和配置文件
命令执行风险 高 仅执行白名单命令,避免拼接用户输入 使用沙箱环境测试
网络通信安全 中 使用HTTPS协议,验证SSL证书 定期检查证书有效期
敏感数据暴露 高 输出结果中不包含密钥、令牌等敏感信息 日志脱敏审查
未授权访问 中 限制访问权限,实施认证机制 定期审计访问日志
## 热门问答
## 问题应对方案
针对Excel数据魔法师使用中可能遇到的常见问题,提供以下排查方案:
错误类型 原因分析 解决方案
--------- --------- ---------
API认证失败(401) API密钥错误或过期 检查密钥配置,重新生成token
接口限流(429) 请求频率超出限制 降低调用频率,启用重试退避策略
响应超时(504) 网络延迟或服务端负载过高 增加超时阈值,检查网络连接
文件不存在 路径错误或文件未创建 检查路径拼写,确认文件已生成
文件格式不支持 扩展名不在支持列表中 转换为支持的格式后重试
权限不足 当前用户无读写权限 检查文件权限,以管理员身份运行
命令执行失败 参数错误或环境依赖缺失 检查命令语法,确认依赖已安装
进程超时 命令执行时间过长 增加超时设置,优化命令参数
网络连接失败 DNS解析失败或防火墙拦截 检查网络配置,确认代理设置
### Excel数据魔法师通用排查步骤
1. 检查输入参数: 确认所有必填参数已提供且格式正确
2. 查看日志输出: 定位具体错误行和异常类型
3. 验证环境配置: 确认依赖库版本和运行环境满足要求
4. 逐步调试: 缩小问题范围,隔离故障模块
## 使用向导
1. 配置API密钥: 在环境变量中设置对应的API Key
2. 初始化连接: 使用提供的凭证建立API连接
3. 调用接口: 传入必要参数执行API调用
1. 准备文件: 确认文件路径正确且格式受支持
2. 执行处理: 调用对应的处理函数
3. 查看结果: 检查输出文件或返回数据
1. 检查环境: 确认运行时和依赖已安装
2. 执行命令: 使用正确的参数格式执行
3. 查看输出: 检查命令输出和退出码
### 前置条件
- 已安装所需运行环境(参考依赖说明)
- 已获取必要的API密钥或访问凭证(如适用)
- 输入数据已准备就绪
### Q1: 本技能支持哪些输入格式?
### 本技能通用排查步骤
1. 检查输入参数: 确认所有必填参数已提供且格式正确
2. 查看日志输出: 定位具体错误行和异常类型
3. 验证环境配置: 确认依赖库版本和运行环境满足要求
4. 逐步调试: 缩小问题范围,隔离故障模块
## 应用场景
适用于需要专业工具支持的开发、运维和内容创作场景。
- 开发者日常工具调用
- 团队协作中的自动化处理
- 内容生产与格式转换
## 支持中心
### Q1: Xlsx Data Wizard支持哪些输入格式?
A1: Xlsx Data Wizard专业技能工具。
### Xlsx Data Wizard通用排查步骤
1. 检查输入参数: 确认所有必填参数已提供且格式正确
2. 查看日志输出: 定位具体错误行和异常类型
3. 验证环境配置: 确认依赖库版本和运行环境满足要求
4. 逐步调试: 缩小问题范围,隔离故障模块

常见问题

5 问
答案由本站依据条目字段整理
Excel数据向导怎么安装?

在支持 Skills 的客户端里执行:skillhub install zcwl/xlsx-data-wizard-cn。安装方式为未标注。装完刷新技能列表或重开客户端。

Excel数据向导支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

Excel数据向导权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

Excel数据向导收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

Excel数据向导用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。