開発未分類メモ
gogcliでGoogle Sheetsを操作する:CLIからスプレッドシートの作成・読み書きが全部できる
これは何がすごいのか
Google Workspace CLIツール「gogcli」を使うと、スプレッドシートの作成・データ書き込み・読み取り・数式取得までターミナルから全部できる。つまり:
- スプレッドシートをデータソースにしたWebアプリの自動生成ができる
- ExcelファイルもDriveでスプレッドシート形式に変換すればCLIから操作可能
- Claude Codeと組み合わせれば、スプレッドシートの内容を読み取りコードに変換するパイプラインが作れる
実際にやったこと
1. スプレッドシートの新規作成
gog sheets create "gogcli テスト" --sheets "データ,サマリー"
タイトルとシート名を指定するだけで作成できる。--json フラグをつけるとスプレッドシートIDやURLがJSON形式で返ってくる。
2. データの書き込み
gog sheets update "<spreadsheetId>" "データ!A1:D5" \
--values-json '[["月","売上","経費","利益"],["1月","1000000","600000","400000"],["2月","1200000","650000","550000"],["3月","1100000","620000","480000"],["4月","1300000","700000","600000"]]'
値は --values-json で2次元配列として渡すのが確実。パイプ区切り(セル)とカンマ区切り(行)でも渡せるが、JSON形式の方が間違いにくい。
3. 数式の書き込み
gog sheets update "<spreadsheetId>" "データ!E1:E5" \
--values-json '[["合計"],["=B2+C2"],["=B3+C3"],["=B4+C4"],["=B5+C5"]]' \
--input USER_ENTERED
--input USER_ENTERED を指定すると、=B2+C2 のような文字列を数式として解釈してくれる。

4. データの読み取り(3つのモード)
# 表示値(デフォルト)
gog sheets get "<spreadsheetId>" "データ!A1:E5"
# 数式として取得
gog sheets get "<spreadsheetId>" "データ!A1:E5" --render FORMULA
# 書式なしの生の値
gog sheets get "<spreadsheetId>" "データ!A1:E5" --render UNFORMATTED_VALUE
| モード | 用途 | E2セルの出力例 |
|---|---|---|
FORMATTED_VALUE | 表示用 | 1600000 |
FORMULA | 数式の構造を知りたいとき | =B2+C2 |
UNFORMATTED_VALUE | プログラムで使う生データ | 1600000 |
5. メタデータの取得
gog sheets metadata "<spreadsheetId>"
シート名、行数、列数、ロケール、タイムゾーンなどスプレッドシートの構造情報が取得できる。プログラムでシート一覧を動的に処理したいときに使う。
6. ハマったポイント:appendの挙動
最初 append でヘッダー行を書こうとしたら、カンマ区切りの値が横ではなく縦に入った。
# これだとA1〜A4に縦に入る
gog sheets append "<spreadsheetId>" "データ!A1:D1" "月,売上,経費,利益"
append のカンマはセル区切りではなく行区切りとして扱われる。横方向にデータを入れたい場合は update --values-json を使う。
コマンド一覧
gog sheets create <title> # 新規作成
gog sheets get <id> <range> # 値の取得
gog sheets update <id> <range> # 値の更新
gog sheets append <id> <range> # 値の追加
gog sheets clear <id> <range> # 値のクリア
gog sheets format <id> <range> # 書式設定
gog sheets metadata <id> # メタデータ取得
gog sheets copy <id> <title> # コピー
gog sheets export <id> # エクスポート(pdf/xlsx/csv)
全コマンドで --json フラグが使える。スクリプトやパイプラインに組み込むとき便利。
注意点まとめ
| 項目 | 内容 |
|---|---|
| 値の書き込み | --values-json でJSON 2次元配列が確実 |
| 数式の書き込み | --input USER_ENTERED が必要 |
| appendのカンマ | 行区切りとして扱われる。横方向なら update を使う |
| 全コマンド共通 | --json でJSON出力、--plain でTSV出力 |
活用の可能性
- スプレッドシート → Webアプリ変換: 数式と値を読み取り、Vue/Reactコンポーネントを自動生成
- 定期レポートの自動化: CLIからデータを書き込み、スプレッドシートの数式で集計
- Excelファイルの一括処理: DriveにアップロードしてSheets形式に変換すればCLIから操作可能
- データパイプライン: 外部データ → gogcliでSheets書き込み → Sheets数式で加工 → gogcliで結果取得 → アプリに反映
- スプレッドシート分析: Claude Codeがデータを取得し、分析・レポート生成まで自動化
- 既存Excelの移行: ExcelをDriveにアップロード → Sheets変換 →
get --render FORMULAで数式構造を把握 → Webアプリに再実装