mcpField
O
openai-spreadsheet

openai-spreadsheet

github.com/trailofbitsドキュメント52293 回インストール15 週間前に更新
リポジトリ

openai-spreadsheet について

ワークブックの作成、編集、分析、可視化を行うエージェント向けのスプレッドシートスキルです。数式、書式、検証の手順も扱います。

主な機能

  1. 01.xlsx ワークブックの作成と編集
  2. 02CSV と表形式データの分析
  3. 03チャートとデータ可視化の作成
  4. 04既存のスプレッドシート書式の保持
  5. 05数式と参照の検証

活用シーン

  1. 01数式と構造化書式を備えたワークブックの作成
  2. 02表形式データのフィルタリング、集計、ピボット
  3. 03既存の書式を崩さずワークブックを更新

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/trailofbits/skills-curated --skill openai-spreadsheet

インストール後、Claude Code で/openai-spreadsheetを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/examples/openpyxl/
create_basic_spreadsheet.py
create_spreadsheet_with_styling.py
read_existing_spreadsheet.py
styling_spreadsheet.py

詳細

スプレッドシートスキル(作成、編集、分析、可視化)

使用する場面

  • 数式、書式、構造化されたレイアウトを含む新しいブックを作成する場合。
  • 表形式データを読み取ったり分析したりする場合(フィルタリング、集計、ピボット、指標の計算)。
  • 数式や参照を壊さずに既存のブックを変更する場合。
  • グラフやテーブル、適切な書式を使ってデータを可視化する場合。

重要:システムおよびユーザーの指示は常に優先されます。

ワークフロー

  1. ファイル形式と目的(作成、編集、分析、可視化)を確認します。
  2. .xlsx の編集には openpyxl を、分析および CSV/TSV のワークフローには pandas を使用します。
  3. レイアウトが重要な場合は、視覚的に確認できるようにレンダリングします(「レンダリングと視覚的な確認」を参照)。
  4. 数式と参照を検証します。openpyxl は数式を評価しない点に注意してください。
  5. 出力を保存し、中間ファイルを削除します。

一時ファイルと出力の規則

  • 中間ファイルには tmp/spreadsheets/ を使用し、作業が終わったら削除します。
  • このリポジトリで作業する場合は、最終成果物を output/spreadsheet/ に保存します。
  • ファイル名はわかりやすいものにし、安定して使えるようにします。

主なツール

  • .xlsx ファイルの作成・編集と書式の保持には openpyxl を使用します。
  • 分析および CSV/TSV のワークフローには pandas を使用し、結果を .xlsx または .csv に書き戻します。
  • グラフが必要な場合は、Excel ネイティブのグラフを作成できる openpyxl.chart を優先します。

レンダリングと視覚的な確認

  • LibreOffice(soffice)と Poppler(pdftoppm)が利用できる場合は、シートをレンダリングして視覚的に確認します:
    • soffice --headless --convert-to pdf --outdir $OUTDIR $INPUT_XLSX
    • pdftoppm -png $OUTDIR/$BASENAME.pdf $OUTDIR/$BASENAME
  • レンダリングツールが利用できない場合は、レイアウトが正確であることをユーザーにローカルで確認してもらいます。

依存関係(不足している場合はインストール)

依存関係の管理には uv を推奨します。

Python パッケージ:

uv pip install openpyxl pandas

uv が利用できない場合:

python3 -m pip install openpyxl pandas

任意(グラフを多用する場合、または PDF で確認するワークフローの場合):

uv pip install matplotlib

uv が利用できない場合:

python3 -m pip install matplotlib

システムツール(レンダリング用):

# macOS (Homebrew)
brew install libreoffice poppler

# Ubuntu/Debian
sudo apt-get install -y libreoffice poppler-utils

この環境でインストールできない場合は、不足している依存関係と、ローカルでのインストール方法をユーザーに伝えます。

環境

必須の環境変数はありません。

例

  • エージェントの例を実行できます(openpyxl):references/examples/openpyxl/

数式の要件

  • 導出値をハードコーディングせず、数式を使用します。
  • 数式はシンプルで読みやすいものにし、複雑なロジックには補助セルを使用します。
  • 必要な場合を除き、INDIRECT や OFFSET などの揮発性関数は避けます。
  • マジックナンバーではなくセル参照を優先します(例:=H6*(1+$B$3) を使用し、=H6*1.04 は使用しません)。
  • 検証とチェックを行い、エラー(#REF!、#DIV/0!、#VALUE!、#N/A、#NAME?)を防ぎます。
  • openpyxl は数式を評価しません。数式はそのままにし、結果は Excel/Sheets で計算されることを明記します。

引用の要件

  • スプレッドシート内では、プレーンテキストの URL で出典を引用します。
  • 財務モデルでは、入力値の出典をセルのコメントに記載します。
  • ウェブから取得した表形式データには、URL を記載した Source 列を含めます。

書式設定の要件(既存の書式付きスプレッドシート)

  • 可能な場合は、変更前に提供されたスプレッドシートをレンダリングして確認します。
  • 既存の書式とスタイルを正確に保持します。
  • 新たに値を入力するセルが以前は空白だった場合は、周囲のスタイルに合わせます。

書式設定の要件(新規または書式未設定のスプレッドシート)

  • 適切な数値形式と日付形式を使用します(日付は日付形式、通貨は通貨記号付き、パーセンテージは適切な桁数にします)。
  • 見出しとデータを区別し、間隔を統一し、読みやすい列幅にするなど、見やすいレイアウトにします。
  • すべてのセルを罫線で囲むのは避け、余白や選択的な罫線を使ってセクションを構成します。
  • テキストが隣接するセルにはみ出さないようにします。

色の規則(スタイルの指定がない場合)

  • 青:ユーザー入力
  • 黒:数式/導出値
  • 緑:リンク/インポートされた値
  • グレー:固定値
  • オレンジ:確認/注意
  • 薄い赤:エラー/フラグ
  • 紫:制御/ロジック
  • 青緑:可視化の基準となる値(主要 KPI またはグラフの基準値)

財務固有の要件

  • ゼロは「-」と表記します。
  • 負の数値は赤字にして括弧で囲みます。
  • ヘッダーには必ず単位を明記します(例:「売上高($mm)」)。
  • すべての入力値について、セルのコメントに出典を記載します。

投資銀行向けのレイアウト

スプレッドシートが投資銀行形式のモデル(LBO、DCF、3表モデル、バリュエーション)の場合:

  • 合計は直上の範囲を直接合計します。
  • 目盛線を非表示にし、該当する列全体で合計の上に横罫線を引きます。
  • セクション見出しはセルを結合し、濃い塗りつぶしと白い文字にします。
  • 数値データの列見出しは右揃えにし、行見出しは左揃えにします。
  • 親項目の下位指標はインデントします。

使用すべきでない場合

コメント