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 wjxcom/wjx-ai-kit --skill excel-image-embedgit clone --depth 1 https://github.com/wjxcom/wjx-ai-kitWrote 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/wjxcom/wjx-ai-kit/excel-image-embed)<a href="https://agentmods.dev/skills/wjxcom/wjx-ai-kit/excel-image-embed"><img src="https://agentmods.dev/badge/skills/wjxcom/wjx-ai-kit/excel-image-embed/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/wjxcom/wjx-ai-kit/excel-image-embed"><img src="https://agentmods.dev/badge/skills/wjxcom/wjx-ai-kit/excel-image-embed.svg" alt="Reviewed on agentmods" width="80" 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.00110 | $0.01426 |
| Opus 5.5 | $0.00044 | $0.00570 |
| Sonnet 5.5 | $0.00022 | $0.00285 |
| Haiku 4.5 | $0.00011 | $0.00143 |
Grade A, and why
excel-image-embed 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 today.
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 — 67 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Excel 图片链接嵌入
先确认输入
- 确认源
.xlsx文件、图片列(字母或 1 起始序号)、保留前几列、显示宽度。 - 默认保留前六列,显示宽度 100 像素。图片列按源列号排序,追加到保留列后面。
- 单工作表直接处理。多工作表先询问处理哪些,再传
--sheets;不要擅自处理所有表。 - 输出不得覆盖源文件或已有文件。只有用户要求压缩时才讨论降低分辨率;本脚本不提供有损缩图。
- 说明会下载用户指定列的链接并写入本地缓存。不要上传文件、原图、真实链接或验证记录到外部服务。
使用自带脚本,不重新实现
下方路径相对于本 Skill 的根目录。执行时使用真实绝对路径,路径有空格时加引号。检查依赖;缺失时说明情况并按宿主权限规则安装:
python -m pip install -r "<skill-dir>/requirements.txt"
python "<skill-dir>/scripts/embed_images.py" "input.xlsx" --columns BR BS --keep-columns 6 --width 100 --output "output_images.xlsx"
多工作表、缓存和并发参数:
python "<skill-dir>/scripts/embed_images.py" "input.xlsx" --columns 70 71 --sheets "Sheet1" "Sheet2" --cache "image-cache" --workers 4 --output "output_images.xlsx"
参数缺失或不确定时运行 --help。脚本执行返回非零时检查错误,不要宣称完成。链接失败不会中断其他链接,但会记录状态。
为什么必须这样处理
- 显示尺寸与图像分辨率是两件事:100 像素仅指 Excel 中的显示宽度。不要调用 resize/thumbnail 把图片文件缩到 100 像素,否则用户放大后无法阅读。
- JPEG、PNG 在无需方向修正时按原文件字节嵌入。WebP 和其他 Pillow 可解码格式转为全分辨率 PNG。根据 EXIF 修正方向后再计算比例。
- 显示高度 = 原图高度 × 显示宽度 ÷ 原图宽度,不取整至整数像素;只有 Excel EMU 存储单位有微小舍入误差。锁定纵横比。
- 使用源行号映射输出行号。每个 URL 保留独立序号,包括失败项;后续图片不会挤占失败项的位置。
- 多图锚定同一目标单元格,用横向偏移量定位,不新增或占用相邻数据列。
- 列宽按本列所有行所需的最大总宽度确定;行高取原行高及所有图片列所需高度的最大值。
- PDF、Word、非图片、HTTP 失败、损坏图片分别记录。不要未经请求渲染 PDF、提取 Word 图片或绕过登录。
- 图片超出 Excel 行高或列宽上限时,要求用户选择较小的显示宽度;不要降低图片文件分辨率解决。
数据和限制
- 保留列复制数据、单元格样式、批注、超链接及完全位于保留列内的合并区域。跨越保留边界的合并区域会报告并停止,避免不完整复制。
- 默认输出数据快照:公式复制源文件已缓存的计算结果,避免引用被省略的列或表。未缓存的公式会报告并停止;请先在 Excel/WPS 中重算并保存。不会自动执行公式。
- 不复制源图表、宏、原有图片、条件格式或其他复杂工作簿对象。不声称是完整工作簿克隆。
- 第一行为表头,第二行起处理链接。文本、分号、逗号、中文逗号及换行可分隔 URL;URL 内的分隔符应百分号编码。包含特殊 URL、登录权限或不同表头布局时先与用户澄清。
- 只访问 HTTP(S)。使用正常 HTTPS 证书校验,不提供跳过验证选项;不执行链接返回的代码。
- 远程图片可能尺寸很大。默认并发四个,单文件下载限制 50 MiB;可以通过参数显式调整。图片仍清晰与否受原图本身质量限制。
验证与交付
python "<skill-dir>/scripts/verify_output.py" "output_images.xlsx"
验证会核对工作簿 ZIP/XML、嵌入文件哈希及像素尺寸、显示比例、纵横比锁、锚点、失败槽位、列边界、行高和源数据。读取输出的 _verification.json,检查 passed 为 true。这是结构/数据检查,不等于已在所有 Excel/WPS 版本中视觉验收;建议用户打开并放大一张图片。
交付新 .xlsx、_issues.csv 和 _manifest.json,简要报告成功图片数、跳过/失败原因、文件大小。缓存供用户复用,可自行删除,不是工作簿打开的依赖。高清文件可能很大,提前提醒,但不要自行有损压缩。
What ships with it
5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- today First seen · 67 lines · 110 tokens per session scan A 4175337de0bd
excel-image-embed is a skill published in the GitHub repository wjxcom/wjx-ai-kit (22 stars, last pushed today), licensed MIT. It adds 110 tokens to every session and 1,426 once invoked, about $0.0004 per session on Opus 5.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-10-21.
Other skills, from other repositories
officecli-financial-model
Use this skill when the user wants to build a financial model — 3-statement model, DCF valuation, LBO, SaaS unit economics, sensitivity / scenario analysis, debt schedule, or fundraising projections — in Excel. Trigger on: 'financial model', '3-statement model', 'P&L + BS + CF', 'DCF', 'WACC', 'NPV', 'terminal value'…
officecli
Create, analyze, proofread, and modify Office documents (.docx, .xlsx, .pptx) using the officecli CLI tool. Use when the user wants to create, inspect, check formatting, find issues, add charts, or modify Office documents.
gws-sheets
Google Sheets: Read and write spreadsheets.
xlsx-official
Spreadsheet toolkit. Reach for it whenever the artifact on either side of the conversation is a workbook file — .xlsx, .xlsm, .xltx, .csv, .tsv — and the user wants that artifact produced, changed, cleaned, or read. Typical triggers: 'build me a model', 'update this sheet', 'add a column', 'compute the totals as…
gws-sheets-append
Google Sheets: Append a row to a spreadsheet.
gws-sheets-read
Google Sheets: Read values from a spreadsheet.