ドキュメント&知識ベース · anthropics/skills

xlsx

スプレッドシートファイルが主要な入力または出力となる場合に、いつでもこのスキルを使用します。これには、既存の .xlsx、.xlsm、.xltx、.csv、または .tsv ファイルを開く、読み取る、編集する、修正する(例:列の追加、数式の計算、書式設定、グラフ作成、乱雑なデータのクリーニング)、ゼロからまたは他のデータソースから新しいスプレッドシートを作成する、表形式ファイル形式間で変換するなど、ユーザーが希望するタスクが含まれます。特に、ユーザーがスプレッドシートファイルを名前やパスで(「ダウンロードフォルダにある xlsx」のようにカジュアルにであっても)参照し、それに対する処理やそれからの生成を求めている場合にトリガーします。また、乱雑な表形式データファイル(不正な形式の行、誤ったヘッダー、ゴミデータ)を適切なスプレッドシートにクリーニングまたは再構築する場合にもトリガーします。成果物はスプレッドシートファイルである必要があります。表形式データが含まれていても、主な成果物が Word 文書、HTML レポート、スタンドアロン Python スクリプト、データベースパイプライン、Google Sheets API 連携である場合はトリガーしないでください。

L4 高権限 · 段階的認可と監査V1 コミット固定コマンド実行ファイル書き込みDual-pass Audit
Author anthropicsGitHub anthropics/skills ↗Stars 175386License Proprietary(skill 自带 LICENSE.txt:© 2025 Anthropic, PBC. All rights reserved. 按 Anthropic Consumer/Commercial Terms of Service 授权并附 ADDITIONAL RESTRICTIONS;非开源许可)Commit 41bbe19d1a
管理レベルは Skill の能力と推奨統制措置を示すものであり、品質や安全性の認証、利用可否の判定ではありません。使用の可否はユーザーおよび管理者が決定します。Agent 環境によって制約が異なるため、自動保護を仮定しないでください。第三者製 Skill の著作権は原著作者に帰属し、利用リスクは利用者が負います。

1仕組みと動作原理

docx/pptx と共通の哲学:タスクに応じたツールの選定——数式/書式を伴う作成・編集は openpyxl、バッチデータ処理は pandas、素早いプレビューは markitdown、数式と値の両モデルの読み取りには必ず二重の load_workbook を実施。

skills/xlsx/SKILL.md
| **Read** a model (formulas *and* values) | two `load_workbook` passes — see gotchas
二重読み込みの原理は gotchas で明記されています:「`data_only=True` yields cached values with the formulas gone; the default yields formula strings with no values. One pass cannot give you both.」——openpyxl は1回の読み込みでは数式と値の両方を取得できません。

中核となる技術的事実:openpyxl はキャッシュ値を含まない数式文字列のみを書き込むため、数式を含むファイルは納品前に必ず recalc.py を実行する必要がある——LibreOffice を StarBasic マクロ経由で駆動して再計算とインプレース上書きを行い、status/errors_found を含む JSON 規約を返す。

skills/xlsx/SKILL.md
openpyxl writes formulas as strings with **no cached values**. Until you recalculate, every formula cell reads back as `None` to anything reading cached values
recalc.py には Basic マクロ「Sub RecalculateAndSave() … ThisComponent.calculateAll() ThisComponent.store()」が組み込まれており、一時 LO プロファイル内で実行されます。「JSON with an `error` key instead of a `status` means nothing was recalculated, and only that case exits non-zero」——終了コードのセマンティクスについても明示的に警告されています。

数式のポータビリティを納品品質として管理:LO が実装する関数サブセットは Excel より小さく、_xlfn. プレフィックスを付与できない関数や未サポートの関数は #NAME? としてファイルに焼き付いてしまうため、「使用可能/要プレフィックス/使用禁止」の3段階の関数リストを規定。

skills/xlsx/SKILL.md
LibreOffice implements fewer functions than Excel, and one it cannot evaluate becomes a literal `#NAME?` baked into the file you deliver.
詳細ルール:Excel-2007 時代の関数(SUMIFS/INDEX/MATCH/IFERROR/SUMPRODUCT)はプレフィックス不要、TEXTJOIN/CONCAT/IFS/SWITCH/MAXIFS/MINIFS は _xlfn. プレフィックス必須、XLOOKUP/XMATCH/SORT/FILTER/UNIQUE/SEQUENCE は使用禁止(スピル配列のメタデータが欠落し、左上セルに警告なしで切り捨てられ、recalc でもエラー 0 件と報告されるため)。

「recalc 成功(緑)≠ 数式の正確性」の明示化:許容誤差の間違いや参照行の誤りがある数式もエラー 0 件で通過してしまうため、グリッド全体に展開する前に 2〜3 個の数式を手動検証することを義務付け。

skills/xlsx/SKILL.md
**A green recalc proves your formulas *evaluate*, not that they are *right*.**
付帯規律:「Zero formula errors. Never ship while `recalc.py` reports `errors_found`」+「Use formulas, never hardcoded results」+「An error you introduced looks exactly like one you inherited」(自己証明手法:元のファイルを data_only=True で読み込み比較)。

外部参照リンク('[1]Returns Analysis'!$B$2)を高リスクとして識別:openpyxl での再保存時にキャッシュ値が失われ、その後の LO による再パースで失敗して全リンクが削除される——recalc.py は外部参照を検出すると即座に実行を拒否し、事前に値をコピーするか --force で損失を容認する必要がある。

skills/xlsx/SKILL.md
if you re-save it with openpyxl and then recalculate. Such a formula reads `='[1]Returns Analysis'!$B$2`
recalc.py の external_links_at_risk() は xl/externalLinks/ および数式内の EXTERNAL_REF_RE パターンをスキャンし、at_risk セルのリストを返します。「`recalc.py` refuses to run in that state — copy those cells' values out of the original before you save over them」。

体系化された成果物規律:プロ仕様のフォント選定、すべての前提条件やハードコード数値に対するコメントまたは隣接セルでの出典明記、自作の入力待ちテンプレートへの凡例+サンプル行の付与、既存ファイルの変更時は入力指定セルのみに書き込み数式は触らない、ユーザー仕様の厳密な履行。

skills/xlsx/SKILL.md
**Follow the user's spec literally.** Exact tab names, exact column headers, and the formula they spelled out. A redesign that computes something else fails, however elegant.
さらに「Document every assumption and hardcoded number where the reader will see it」および「Find its designated input cells first…write only there, and leave every existing formula untouched」を順守。

2コア機能

01数式と書式を伴うワークブックの作成・編集(openpyxl)、.xlsm の keep_vba、.xltx、.csv、.tsv のハンドリングを含む
02数式再計算の検証ループ:recalc.py が LibreOffice を駆動し、JSON 形式で status/total_formulas/total_errors/error_summary をレポート
03一括データの入出力およびクリーニング(pandas read_excel/to_excel)
04迅速なプレビュー(markitdown によるシート単位のテキストダンプ)
05数式ポータビリティ管理:Excel-2007 世代の関数優先 / _xlfn. プレフィックス対応表 / 最新の動的配列関数の使用禁止リスト
06外部参照リンクのリスク評価および実行拒否による保護機能(external_links_at_risk / --force)
07財務モデリングの書式慣例:ハードコード入力は青、数式は黒、シート間参照は緑、ファイル間参照は赤、重要仮定は黄、および $#,##0 やパーセンテージ/倍率/年のフォーマット設定
08既存ファイル編集の作法:入力セルを特定してそこだけに書き込み、既存の数式には触れない。自作の入力テンプレートには凡例とサンプル行を設ける

3外部依存関係

KindDependency / Endpoint
packageopenpyxl / pandas / markitdown(pip,预装声明,import 失败才装)
cliLibreOffice soffice(recalc 引擎,经 scripts/office/soffice.py 包装,适配无头沙箱)
cligtimeout(可选,recalc 超时保护)

4推奨統制措置と判定根拠

安全運用のための推奨統制措置
Agent 向け
段階的・都度認可、サンドボックス推奨
管理者向け
承認フロー、ロールバック可能、全履歴監査
判定根拠(ファイルパスと抜粋)
  • scripts/: ローカルスクリプトまたはコマンドの実行: recalc.py(同梱 Python)→ soffice.py 経由でヘッドレス LibreOffice を起動し組み込み Basic マクロを実行(calculateAll/store)
  • 本地工作目录: ファイルの読み書きと成果物の出力: recalc によるワークブックのインプレース上書き(tempdir 内の -env:UserInstallation 一時 LO プロファイルを使用)
監査ノート: 同梱の Python スクリプトとローカルの LibreOffice を使用して数式の再計算とファイルの上書きを行い、外部へのネットワーク送信(import 失敗時に PyPI への条件付き pip フォールバックを除く)や認証情報の読み取りは行いません。留意点:① recalc は成果物ファイルを「インプレースで上書き」し、ヘッドレス LO 実行(内包する Basic マクロは自己完結型で calculateAll+store のみ実行)に依存します。② マクロ付きの .xlsm や信頼できないワークブックを処理する場合、パースの攻撃対象面は openpyxl/LibreOffice に依存します(ホスト側でバージョンとサンドボックスの評価が必要です)。③ 外部参照ファイルが存在するシナリオで recalc が実行を拒否するのはデータ保護のための意図的な設計であり、障害ではありません。全体として外部通信リスクのないローカルスプレッドシート処理スキルです。

5二重目の独立検証

  • [ok] recalc JSON 契约与退出码语义 — 代码返回 dict 含 status/errors_found 等键;main 中 'sys.exit(1 if "error" in result else 0)' 与 SKILL 'only that case exits non-zero' 一致。
  • [ok] 外链拒跑机制 — external_links_at_risk() 扫描 xl/externalLinks/ 并匹配 EXTERNAL_REF_RE,SKILL 所述 'refuses to run in that state' 有代码对应(force 分支)。
  • [ok] LibreOffice 宏重算 — RECALCULATE_MACRO 内嵌 'Sub RecalculateAndSave() … ThisComponent.calculateAll() ThisComponent.store()',经临时 profile 执行。
  • [ok] 共享 office/ 工具树 — xlsx/scripts/office 与 docx、pptx 的对应目录 diff 零差异(同一文件副本)。
  • [ok] 网络/凭证零命中 — 脚本无网络调用、无 env/token 读取;pip 仅条件回退。
  • [ok] 夸大检查 — description 'Use this skill any time a spreadsheet file is the primary input or output' 覆盖 open/read/edit/create/convert/clean 均在正文有路线;'Do NOT trigger when…Google Sheets API integration' 负面边界明确。
  • [ok] 元数据 — 本地 HEAD==pin 41bbe19;LICENSE 专有(© 2025 Anthropic, PBC.)与 frontmatter 'Proprietary' 一致。

6結論

  • 数式再計算のエンジニアリング:openpyxl にキャッシュ値が保存されないという根本的な欠点を recalc.py と LO マクロのループにより解消し、JSON 規約によりモデルが自律的に納品品質を検証可能。
  • 3段階の関数互換性リスト(プレフィックス不要 / _xlfn. / 禁止)により、#NAME? エラーや無言の切り捨てが発生した不良ファイルの納品を直接防止。
  • 外部参照データの保護:検出 → 実行拒否 → 値コピー → --force の段階的アプローチにより、「再保存によるリンク喪失」事故を防止。
  • 徹底された納品規律(数式エラーゼロ、前提条件の履歴管理、仕様の文字通りの実行、既存ファイルでの入力セル限定書き込み)により、厳格なモデラーのノウハウをルール化。
  • 財務モデリングの慣例を標準装備し、構造化されたモデリング成果物の作成に即座に対応可能。
  • 最適な用途: 管理された環境でのスプレッドシートの「モデリング級」タスクに最適:数式を含む財務モデル、レポートの自動化、一括データクリーニングからの表生成、テンプレートへの流し込みなど。recalc によるゲートチェックと外部参照保護機能は、「Excel や Google スプレッドシートで開いて即座に計算に供する」厳格な納品シナリオに特に適しています。
    不向きな用途: LibreOffice が存在しない環境(検証ループが機能しないため);単発のデータ閲覧や変換といった軽量タスク(markitdown や pandas で十分であり、本ワークフローは過剰);外部 Excel ファイルと密結合したワークブックの編集(リスクが高く、値の事前コピー手順が必要);プロプライエタリまたは特定オープンソースライセンスを許容できない組織。
    Install Agent-Ready
    ① Verified Mirror 2026-09-09
    Option A · Direct DownloadDownload xlsx.tar.gz
    sha256: d680b3f18f0c671a…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 41bbe19d1a.