Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add YuYY2004/excel-skills --skill excel-insertgit clone --depth 1 https://github.com/YuYY2004/excel-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/yuyy2004/excel-skills/excel-insert)<a href="https://agentmods.dev/skills/yuyy2004/excel-skills/excel-insert"><img src="https://agentmods.dev/badge/skills/yuyy2004/excel-skills/excel-insert.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00171 | $0.02516 |
| Opus 5 | $0.00086 | $0.01258 |
| Sonnet 5 | $0.00034 | $0.00503 |
| Haiku 4.5 | $0.00017 | $0.00252 |
Grade A, and why
excel-insert scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 223 lines — stays where its author put it; the contents beside it link to each section on GitHub.
This skill follows [[excel-safe-workflow]] four-step method. Must complete Requirement Parsing→Scout→Plan before execution, and Verify after. 本技能遵循 [[excel-safe-workflow]] 四步法。执行前必须完成 需求解析→勘察→规划,执行后必须验证。
Excel Safe Insert (Row & Column) / Excel 安全插入(行列通用)
第零步:需求解析
自动识别插入类型 / Auto-detect Insert Type
从用户原话中判断要插入列还是行:
| 用户说 | 判定 |
|---|---|
| "插入列""加一列""新增列""左边""右边""E列后面" | → 列模式 |
| "插入行""加一行""新增行""上面""下面""第5行后面" | → 行模式 |
列模式解析
| 要素 | 常见表述 | 默认值 |
|---|---|---|
| 目标位置 | "第5列左边""E列右侧""申请日后面" | 必须明确 |
| 插入方向 | "左边""左侧""前面" → left;"右边""右侧""后面" → right | left |
| 表头命名 | "叫xxx" → 指定 | "新列" 或留空 |
| 填充内容 | "填xxx" → 值/公式 | 空 |
行模式解析
| 要素 | 常见表述 | 默认值 |
|---|---|---|
| 目标位置 | "第5行上面""第3行下面" | 必须明确 |
| 插入方向 | "上面""上方""前面" → above;"下面""下方""后面" → below | above |
| 填充内容 | "填xxx" → 值/公式 | 空(留白行) |
解析示例
| 用户说 | 提取 |
|---|---|
| "在E列左边插入一列,叫'格式化日期'" | 列模式, E列, left, 表头='格式化日期' |
| "第5行下面加三行空行" | 行模式, 第5行, below, 3行, 空 |
| "申请日后面加一列" | 列模式, 申请日(勘察定位), right |
第一步:勘察
import os, sys
sys.stdout.reconfigure(encoding='utf-8')
from openpyxl import load_workbook
FILE = '目标文件.xlsx'
size_mb = os.path.getsize(FILE) / 1024 / 1024
print(f'文件大小: {size_mb:.1f} MB')
wb = load_workbook(FILE)
ws = wb.active
print(f'工作表: {ws.title}, 行: {ws.max_row}, 列: {ws.max_column}')
# 展示表头(列模式需要)
print('\n=== 表头 ===')
for col_idx in range(1, ws.max_column + 1):
h = ws.cell(row=1, column=col_idx).value
if h:
col_letter = chr(64 + col_idx) if col_idx <= 26 else f'col{col_idx}'
print(f' 列{col_idx} [{col_letter}]: {h}')
# 如果用户用名称定位 → 匹配列号或行号
target_idx = None # 最终的列号或行号
# 列模式:定位列号
if MODE == 'column':
if isinstance(target_spec, str): # 用户说的是列名
for col_idx in range(1, ws.max_column + 1):
if ws.cell(row=1, column=col_idx).value == target_spec:
target_idx = col_idx
print(f'\n定位: "{target_spec}" → 列{target_idx}')
break
else:
target_idx = int(target_spec) # 用户直接给列号
# 行模式:定位行号
elif MODE == 'row':
target_idx = int(target_spec) if isinstance(target_spec, int) else int(target_spec)
# 双重扫描(检查附近是否有公式)
print('\n=== 公式检查 ===')
wb2 = load_workbook(FILE, data_only=True)
ws2 = wb2.active
if MODE == 'column':
check_range = range(max(1, target_idx - 2), min(ws.max_column + 1, target_idx + 3))
else:
check_range = range(1, ws.max_column + 1) # 行模式检查整行
for col_idx in check_range:
for row_idx in range(max(1, target_idx - 2), min(ws.max_row + 1, target_idx + 3)) if MODE == 'row' else range(2, min(6, ws.max_row + 1)):
v_raw = ws.cell(row=row_idx, column=col_idx).value
if v_raw and isinstance(v_raw, str) and v_raw.startswith('='):
print(f' ⚠️ 列{col_idx}行{row_idx}: 公式 = {v_raw[:50]}')
wb2.close()
print(f'\n准备执行: {MODE}模式, 位置={target_idx}, 方向={DIRECTION}')
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 223 lines · 171 tokens per session scan A 30f62a90f45a
excel-insert is a skill published in the GitHub repository YuYY2004/excel-skills (2 stars, last pushed 1mo ago), licensed MIT. It adds 171 tokens to every session and 2,516 once invoked, about $0.0009 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
spreadsheets
Use when creating, reading, or fixing spreadsheets (.xlsx, .csv). Covers formulas, formatting, charts, data cleaning, and handling the messy real-world files that are not actually tabular.
Excel工具
A guide for using Excel tools to read, write, and recalculate spreadsheet files. It includes a rule for treating the first row as data when a spreadsheet has no column headings.
huashu-data-pro
All-in-one data analysis and productivity assistant. Covers end-to-end workflows for data processing, analytical insights, report writing, PPT creation, and data visualisation. Always approaches tasks from an expert perspective — thinks one step ahead for the user. Proactively confirms with the user when uncertain.…
xlsx
Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or…
thinkcell
Generate, update, and automate think-cell charts and elements in PowerPoint and Excel. Use ANY time the user mentions think-cell, thinkcell, or .ppttc files, or asks to create/update PowerPoint charts following think-cell conventions (waterfall, Mekko, stacked column, Gantt, Harvey ball, scatter/bubble, etc.) …
bug-report-writer
Converts rough notes, casual descriptions, console errors, or quick observations into professional, complete bug reports — exported as a formatted Excel (.xlsx) file ready for Excel, Google Sheets, Jira, or Azure DevOps. Use this skill whenever the user mentions: "write a bug report", "log a bug", "report this issue"…