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 Dannykkh/skill-olympus --skill excel2mdgit clone --depth 1 https://github.com/Dannykkh/skill-olympusWrote 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/dannykkh/skill-olympus/excel2md)<a href="https://agentmods.dev/skills/dannykkh/skill-olympus/excel2md"><img src="https://agentmods.dev/badge/skills/dannykkh/skill-olympus/excel2md/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/dannykkh/skill-olympus/excel2md"><img src="https://agentmods.dev/badge/skills/dannykkh/skill-olympus/excel2md.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.00063 | $0.01816 |
| Opus 5 | $0.00032 | $0.00908 |
| Sonnet 5 | $0.00013 | $0.00363 |
| Haiku 4.5 | $0.00006 | $0.00182 |
Grade A, and why
excel2md 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 5d 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 — 182 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Excel to JSON/Markdown
엑셀 파일을 구조화된 JSON 또는 마크다운으로 변환합니다. 임베디드 이미지도 자동 추출하여 해당 행에 매핑합니다.
Quick Start
/excel2md report.xlsx # JSON (기본)
/excel2md report.xlsx --format md # 마크다운
/excel2md data.xlsx --sheet "매출현황" # 특정 시트
/excel2md data.xlsx --output ./docs # 출력 디렉토리
/excel2md data.xlsx --no-images # 이미지 제외
Step 0: 구조 분석 (First Actions)
변환 전 엑셀 파일의 구조를 먼저 파악합니다.
import openpyxl
wb = openpyxl.load_workbook('data.xlsx', data_only=True)
for sheet_name in wb.sheetnames:
ws = wb[sheet_name]
print(f"\n=== {sheet_name} ===")
print(f" 크기: {ws.max_row}행 × {ws.max_column}열")
print(f" 병합 셀: {len(ws.merged_cells.ranges)}개")
# 헤더 자동 감지 (문자열 비율 기반)
for row_idx in range(1, min(6, ws.max_row + 1)):
row = [ws.cell(row_idx, c).value for c in range(1, ws.max_column + 1)]
str_ratio = sum(1 for v in row if isinstance(v, str)) / max(len(row), 1)
marker = " ← 헤더 후보" if str_ratio > 0.7 else ""
print(f" 행 {row_idx}: {row[:5]}...{marker}")
구조 분석 출력 예시
=== Sheet1 ===
크기: 150행 × 8열
병합 셀: 3개
행 1: ['번호', '이름', '부서', '직급', '입사일']... ← 헤더 후보
행 2: [1, '김철수', '개발팀', '대리', datetime(2020,3,1)]...
=== 매출현황 ===
크기: 50행 × 12열
병합 셀: 12개 (그룹 헤더)
행 1: ['', '', '2025년', None, None, '2026년']... ← 그룹 헤더
행 2: ['지역', '담당자', '1Q', '2Q', '3Q', '1Q']... ← 실제 헤더
Step 1: 데이터 타입 감지 + 변환
타입별 처리 규칙
| 엑셀 타입 | JSON 출력 | MD 출력 |
|---|---|---|
| 문자열 | "text" |
text (파이프·줄바꿈 이스케이프) |
| 정수 | 123 |
천 단위 콤마 1,234 |
| 소수 | 3.14 |
1,234.56 (정수값이면 콤마 정수) |
| 날짜/일시 | "2020-03-01 00:00:00" (datetime을 str()로 — ISO 변환 안 함) |
동일 문자열 |
| 불리언 | true/false |
Yes/No |
| 수식 | 계산 결과값 (data_only=True) |
계산 결과값 |
| 빈 셀 | null |
(공백) |
JSON 셀 직렬화는
None/bool/int/float만 원형 유지하고 나머지(날짜·하이퍼링크 등)는 모두str()로 변환합니다. 하이퍼링크/통화/퍼센트를 구조화 객체({value, format})로 분리하는 기능은 없습니다 — 셀의 텍스트/숫자 값만 출력됩니다.
What ships with it
2 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.
- 5d ago First seen · 182 lines · 63 tokens per session scan A ecf9ceb6511c
excel2md is a skill published in the GitHub repository Dannykkh/skill-olympus (5 stars, last pushed yesterday), licensed MIT. It adds 63 tokens to every session and 1,816 once invoked, about $0.0003 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-09-03.
Other skills, from other repositories
capture-pdf
Website-to-PDF capture (all pages + interactive states). Use when: "capture", "pdf", "print", "screenshot", "capture pages".
document-skills
Professional document creation, editing, and analysis for Office formats (docx, pdf, pptx, xlsx). Use when working with Word documents, PDFs, PowerPoint presentations, or Excel spreadsheets.
dev-document
Document generation (PDF, DOCX, XLSX, PPTX). Trigger when the user wants to create a document, generate a report, export to PDF/Word/Excel/PowerPoint, or produce an office file.
cc-api-design-safety
A safety guide for designing REST API responses and creating downstream files such as Excel, CSV, PDF, or reconciliation files.
cc-streaming-export-safety
A safety workflow for user-triggered exports or batch serialization of large Excel, CSV, JSON, JSONL, or PDF files.
streaming-export-safety
A safety guide for exporting large Excel, CSV, JSON, or PDF files. It also covers converting many records and building large data objects in memory.