# Excel MCP Skill
Excel ファイルの読み書き・書式設定を行うための MCP ツール群。
## 2つのモード
- **`workbook`** — 開いている Excel ブックをリアルタイム操作(xlwings)
- **`path`** — 閉じた .xlsx ファイルを直接編集(Excel 不要、画像・グラフを壊さない)
どちらか一方を指定する。両方指定しない。
## 基本フロー
### 閉じたファイルを扱う場合
1. `read_cells` で現状を確認(path, range, formats=true)
2. `write_cells` で値を書き込む(path, range, value)
3. `format_cells` で書式を整える(path, range, format)
### 開いている Excel を扱う場合
1. `get_excel_info` でブック名・シート名を取得
2. `read_cells` / `write_cells` / `format_cells` を workbook 指定で使う
3. 複雑な操作は `execute_vba` で VBA を実行(開いている時のみ)
## ツール早見表
| ツール | workbook | path | 必須パラメータ |
|--------|:--------:|:----:|---------------|
| get_excel_info | - | - | なし |
| read_cells | OK | OK | range |
| write_cells | OK | OK | range, value |
| format_cells | OK | OK | range, format |
| execute_vba | OK | ✕ | workbook, code |
## value の指定方法
```
単一値: "hello" / 42 / true
1行: ["A", "B", "C"]
複数行: [["A1","B1"], ["A2","B2"]]
1列: range="A1:A3", value=["x","y","z"]
```
range のサイズと value の形状を合わせる。単一値を範囲に書くと全セルに同じ値が入る。
## format の指定方法
```json
{
"bold": true,
"fontSize": 14,
"fontColor": "#FF0000",
"backgroundColor": "#FFFF00",
"textAlign": "center",
"numberFormat": "#,##0",
"borders": {
"outside": { "style": "thin", "color": "#000000" }
}
}
```
使えるプロパティ: bold, italic, underline, fontSize, fontName, fontColor, backgroundColor, textAlign (left/center/right), verticalAlign (top/middle/bottom), numberFormat, wrapText, borders
borders の位置: top, bottom, left, right, inside, outside
borders の style: thin, medium, thick, double, dotted, dashed, none
## 注意点
- `path` モードは .xlsx 形式のみ対応(.xls, .csv は不可)
- `path` モードで編集してもExcelには即反映されない(ファイルを開き直す必要あり)
- `execute_vba` は開いているブック専用。閉じたファイルには使えない
- sheet を省略すると最初のシート(またはアクティブシート)が対象
- 大きな範囲を一度に読むより、必要な範囲だけ指定する方が高速