minimax-xlsx
Excel/スプレッドシートファイル(.xlsx、.xlsm、.csv、.tsv)の作成・読み取り・分析・編集・検証を行います。スプレッドシートの新規作成、既存ファイルの読み込みや編集(書式を損なわない)、数式の再計算・検証、ピボットテーブルや財務モデルへのプロフェッショナルな書式適用など幅広く対応します。「Excel」「.xlsx」「.csv」「ピボットテーブル」「財務モデル」「数式」など、表形式データに関するあらゆる操作の要望をトリガーとして起動します。
description の原文を見る
Open, create, read, analyze, edit, or validate Excel/spreadsheet files (.xlsx, .xlsm, .csv, .tsv). Use when the user asks to create, build, modify, analyze, read, validate, or format any Excel spreadsheet, financial model, pivot table, or tabular data file. Covers: creating new xlsx from scratch, reading and analyzing existing files, editing existing xlsx with zero format loss, formula recalculation and validation, and applying professional financial formatting standards. Triggers on 'spreadsheet', 'Excel', '.xlsx', '.csv', 'pivot table', 'financial model', 'formula', or any request to produce tabular data in Excel format.
SKILL.md 本文
MiniMax XLSX スキル
リクエストに直接対応してください。サブエージェントをスポーンしないでください。常にユーザーが要求した出力ファイルを書き込んでください。
タスクルーティング
| タスク | メソッド | ガイド |
|---|---|---|
| READ — 既存データを分析 | xlsx_reader.py + pandas | references/read-analyze.md |
| CREATE — ゼロからの新規 xlsx 作成 | XML テンプレート | references/create.md + references/format.md |
| EDIT — 既存 xlsx の変更 | XML 解凍→編集→再圧縮 | references/edit.md (スタイル必要時は format.md) |
| FIX — 既存 xlsx の壊れた数式を修復 | XML 解凍→<f> ノード修正→再圧縮 | references/fix.md |
| VALIDATE — 数式の確認 | formula_check.py | references/validate.md |
READ — データ分析 (まず references/read-analyze.md を読んでください)
構造検出には xlsx_reader.py から開始し、次にカスタム分析に pandas を使用します。ソースファイルを変更しないでください。
フォーマットルール:ユーザーが小数点以下の桁数を指定する場合(例:「小数第 2 位」)、すべての数値に対してそのフォーマットを適用します — すべての数値に f'{v:.2f}' を使用します。必要な 12875.00 の場合に 12875 を出力しないでください。
集計ルール:常に DataFrame 列から直接合計/平均/カウントを計算してください — 例:df['Revenue'].sum()。集計前に列値を再導出しないでください。
CREATE — XML テンプレート (references/create.md + references/format.md を読んでください)
templates/minimal_xlsx/ をコピー → XML を直接編集 → xlsx_pack.py で再圧縮します。派生したすべての値は Excel 数式 (<f>SUM(B2:B9)</f>) である必要があり、ハードコードされた数値は絶対にダメです。format.md に従いフォント色を適用します。
EDIT — XML 直接編集 (まず references/edit.md を読んでください)
重要 — 編集整合性ルール:
- 編集タスク用に新しい
Workbook()を絶対に作成しないでください。常に元のファイルをロードしてください。 - 出力は入力と同じシート(同じ名前、同じデータ)を含む必要があります。
- タスクが要求する特定のセルのみを変更してください — その他はすべてそのままにしておきます。
- 出力.xlsx を保存したら、それを検証してください:
xlsx_reader.pyまたはpandasで開き、元のシート名と元のデータのサンプルが存在することを確認します。検証が失敗した場合、間違ったファイルを書き込みました — 配信前に修正してください。
既存ファイルに対して openpyxl ラウンドトリップを使用しないでください(VBA、ピボット、スパークラインが破損します)。代わりに:解凍 → ヘルパースクリプト使用 → 再圧縮。
「セルを埋める」/「既存セルに数式を追加する」= EDIT タスク。入力ファイルが既に存在し、特定のセルを埋める、更新する、または数式を追加するよう指示された場合、XML 編集パスを使用する必要があります。新しい Workbook() を作成してはいけません。例 — B3 に クロスシート SUM 数式を埋める:
python3 SKILL_DIR/scripts/xlsx_unpack.py input.xlsx /tmp/xlsx_work/
# xl/workbook.xml → xl/_rels/workbook.xml.rels を介して対象シートの XML を探す
# 次に Edit ツールを使用して対象 <c> 要素内に <f> を追加:
# <c r="B3"><f>SUM('Sales Data'!D2:D13)</f><v></v></c>
python3 SKILL_DIR/scripts/xlsx_pack.py /tmp/xlsx_work/ output.xlsx
列を追加 (数式、数値フォーマット、スタイルは隣接列から自動コピー):
python3 SKILL_DIR/scripts/xlsx_unpack.py input.xlsx /tmp/xlsx_work/
python3 SKILL_DIR/scripts/xlsx_add_column.py /tmp/xlsx_work/ --col G \
--sheet "Sheet1" --header "% of Total" \
--formula '=F{row}/$F$10' --formula-rows 2:9 \
--total-row 10 --total-formula '=SUM(G2:G9)' --numfmt '0.0%' \
--border-row 10 --border-style medium
python3 SKILL_DIR/scripts/xlsx_pack.py /tmp/xlsx_work/ output.xlsx
--border-row フラグは新しい列だけではなく、その行内のすべてのセルに上部境界線を適用します。合計行に会計スタイルの境界線を適用する必要があるタスクに使用してください。
行を挿入 (既存行をシフト、SUM 数式を更新、循環参照を修正):
python3 SKILL_DIR/scripts/xlsx_unpack.py input.xlsx /tmp/xlsx_work/
# 重要:プロンプトの行番号ではなく、ワークシート XML 内のラベルテキスト
# を検索して正しい --at 行を探します。
# プロンプトが「行 5(Office Rent)」と言っても、Office Rent は実際には
# 行 4 にある可能性があります。常にテキストラベルで行を最初に配置します。
python3 SKILL_DIR/scripts/xlsx_insert_row.py /tmp/xlsx_work/ --at 5 \
--sheet "Budget FY2025" --text A=Utilities \
--values B=3000 C=3000 D=3500 E=3500 \
--formula 'F=SUM(B{row}:E{row})' --copy-style-from 4
python3 SKILL_DIR/scripts/xlsx_pack.py /tmp/xlsx_work/ output.xlsx
行検索ルール:タスクが「行 N(ラベル)の後」と言う場合、常にワークシート XML 内で「ラベル」を検索することで行を探します(grep -n "Label" /tmp/xlsx_work/xl/worksheets/sheet*.xml または sharedStrings.xml をチェック)。実際の行番号 + 1 を --at に使用します。xlsx_shift_rows.py を別途呼び出さないでください — xlsx_insert_row.py が内部で呼び出します。
行全体に境界線を適用 (例:TOTAL 行の会計線):
ヘルパースクリプト実行後、新規追加されたセルだけではなく、対象行のすべてのセルに境界線を適用します。xl/styles.xml で、新しい <border> を <borders> に追加し、次に新しい <xf> を <cellXfs> に追加します。これは各セルの既存 <xf> をクローンしますが、新しい borderId を設定します。s 属性を使用して新しいスタイルインデックスを行内のすべての <c> に適用します:
<!-- xl/styles.xml の <borders> に追加: -->
<border>
<left/><right/><top style="medium"/><bottom/><diagonal/>
</border>
<!-- 次に <cellXfs> に新しい borderId を持つ xf クローンを各既存スタイルに対して追加 -->
重要ルール:タスクが「行 N に境界線を追加」と言う場合、新規追加されたセルだけではなく、A から最後の列までのすべてのセルを反復処理します。
手動 XML 編集 (ヘルパースクリプトがカバーしないもの用):
python3 SKILL_DIR/scripts/xlsx_unpack.py input.xlsx /tmp/xlsx_work/
# ... Edit ツールで XML を編集 ...
python3 SKILL_DIR/scripts/xlsx_pack.py /tmp/xlsx_work/ output.xlsx
FIX — 壊れた数式を修復 (references/fix.md を最初に読んでください)
これは EDIT タスクです。解凍 → 壊れた <f> ノードを修正 → 再圧縮。すべての元のシートとデータを保存します。
VALIDATE — 数式を確認 (references/validate.md を最初に読んでください)
静的検証に formula_check.py を実行します。可用性がある場合、動的再計算に libreoffice_recalc.py を使用します。
財務カラー基準
| セルの役割 | フォント色 | 16 進コード |
|---|---|---|
| ハードコード入力 / 仮定 | 青 | 0000FF |
| 数式 / 計算結果 | 黒 | 000000 |
| クロスシート参照数式 | 緑 | 00B050 |
重要ルール
- 数式第一:計算されるすべてのセルは Excel 数式を使用する必要があり、ハードコードされた数値は絶対にダメです
- CREATE → XML テンプレート:最小限のテンプレートをコピー、XML を直接編集、
xlsx_pack.pyで再圧縮 - EDIT → XML:openpyxl ラウンドトリップを使用しないでください。解凍/編集/再圧縮スクリプトを使用します
- 常に出力ファイルを作成してください — これが最優先事項です
- 配信前に検証します:
formula_check.py終了コード 0 = 安全
ユーティリティスクリプト
python3 SKILL_DIR/scripts/xlsx_reader.py input.xlsx # 構造検出
python3 SKILL_DIR/scripts/formula_check.py file.xlsx --json # 数式検証
python3 SKILL_DIR/scripts/formula_check.py file.xlsx --report # 標準化されたレポート
python3 SKILL_DIR/scripts/xlsx_unpack.py in.xlsx /tmp/work/ # XML 編集用に解凍
python3 SKILL_DIR/scripts/xlsx_pack.py /tmp/work/ out.xlsx # 編集後に再圧縮
python3 SKILL_DIR/scripts/xlsx_shift_rows.py /tmp/work/ insert 5 1 # 挿入用に行をシフト
python3 SKILL_DIR/scripts/xlsx_add_column.py /tmp/work/ --col G ... # 数式で列を追加
python3 SKILL_DIR/scripts/xlsx_insert_row.py /tmp/work/ --at 6 ... # データで行を挿入
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- minimax-ai
- リポジトリ
- minimax-ai/skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/minimax-ai/skills / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。