Google Sheets 操作スキル (gog v0.10.0)
gog CLI を使ってGoogle スプレッドシートを操作する。
実行パス: gog
Execution Notes
execツールで実行時、timeout: 60を指定- 大量データ書き込みは分割して実行
絶対に守るルール
1. セル区切りはパイプ |、行区切りはカンマ ,
# ✅ 正しい:1行に3セル
gog sheets update "$ID" "シート1!A1:C1" "値1|値2|値3"
# ✅ 正しい:2行×3列
gog sheets update "$ID" "シート1!A1:C2" "行1列1|行1列2|行1列3,行2列1|行2列2|行2列3"
# ❌ 間違い:スペース区切りは全部1セルに入る
gog sheets update "$ID" "シート1!A1" "値1" "値2" "値3"
2. カンマ・パイプを含むデータは --values-json
gog sheets update "$ID" "シート1!A1:C2" --values-json '[
["名前", "金額", "備考"],
["田中", "500,000", "特記|なし"]
]'
3. 複数タブは create 時に --sheets で全部作る
gog sheets create "タイトル" --sheets "タブ1,タブ2,タブ3"
⚠️ gogにタブの後追加・削除・リネーム機能はない
4. 操作前にメタデータ確認
gog sheets metadata "$ID" # シート名を確認(日本語ロケールでは「シート1」)
5. 書き込み後は確認
gog sheets get "$ID" "シート1!A1:C2" --json
コマンドリファレンス
読み取り: get
gog sheets get <spreadsheetId> <range>
# 例
gog sheets get "$ID" "シート1!A1:C10"
gog sheets get "$ID" "シート1!A:A" # A列全体
gog sheets get "$ID" "シート1!1:1" # 1行目全体
gog sheets get "$ID" "シート1" --json # JSON出力
書き込み: update
gog sheets update <spreadsheetId> <range> <values>
# オプション
--input="USER_ENTERED" # 数式・日付を解釈(デフォルト)
--input="RAW" # そのまま文字列として入力
--values-json='[[...]]' # JSON形式で値指定
--copy-validation-from="Sheet1!A2" # データ検証をコピー
例:
# 単一行
gog sheets update "$ID" "シート1!A1:C1" "名前|部署|役職"
# 複数行
gog sheets update "$ID" "シート1!A2:C4" "田中|営業|主任,佐藤|開発|リーダー,鈴木|総務|担当"
# JSON形式(推奨:特殊文字を含む場合)
gog sheets update "$ID" "シート1!A1:B2" --values-json '[["項目","金額"],["売上","1,000,000"]]'
# 数式
gog sheets update "$ID" "シート1!D2" "=SUM(B2:C2)"
追加: append
gog sheets append <spreadsheetId> <range> <values>
# 例:シート末尾に行追加
gog sheets append "$ID" "シート1" "新しい|データ|行"
クリア: clear
gog sheets clear <spreadsheetId> <range>
# 例
gog sheets clear "$ID" "シート1!A2:C100"
書式設定: format
gog sheets format <spreadsheetId> <range> --format-json '<CellFormat>'
# オプション
--format-fields="userEnteredFormat(backgroundColor,textFormat)"
書式例:
# ヘッダー書式(青背景・白太字)
FMT='{"backgroundColor":{"red":0.2,"green":0.4,"blue":0.7},"textFormat":{"bold":true,"foregroundColor":{"red":1,"green":1,"blue":1}}}'
gog sheets format "$ID" "シート1!A1:D1" --format-json "$FMT"
# 太字のみ
gog sheets format "$ID" "シート1!A1:A10" --format-json '{"textFormat":{"bold":true}}'
# 背景色(薄い黄色)
gog sheets format "$ID" "シート1!A1:D1" --format-json '{"backgroundColor":{"red":1,"green":1,"blue":0.8}}'
作成: create
gog sheets create <title> [--sheets "タブ1,タブ2"]
# 例
gog sheets create "新規スプレッドシート"
gog sheets create "プロジェクト管理" --sheets "概要,タスク,スケジュール"
コピー: copy
gog sheets copy <spreadsheetId> <newTitle>
# 例
gog sheets copy "$TEMPLATE_ID" "請求書_202602_山田様"
メタデータ: metadata
gog sheets metadata <spreadsheetId>
エクスポート: export
gog sheets export <spreadsheetId> --format <csv|xlsx|pdf>
# 例
gog sheets export "$ID" --format csv
gog sheets export "$ID" --format xlsx --output "./backup.xlsx"
典型ワークフロー
スプレッドシートをゼロから作成
# 1. 作成(タブ全部指定)
RESULT=$(gog sheets create "売上管理" --sheets "月次,年次,設定" --json)
ID=$(echo "$RESULT" | jq -r '.spreadsheetId')
# 2. ヘッダー書き込み
gog sheets update "$ID" "月次!A1:E1" "日付|商品|数量|単価|金額"
# 3. ヘッダー書式
FMT='{"backgroundColor":{"red":0.2,"green":0.4,"blue":0.7},"textFormat":{"bold":true,"foregroundColor":{"red":1,"green":1,"blue":1}}}'
gog sheets format "$ID" "月次!A1:E1" --format-json "$FMT"
# 4. サンプルデータ
gog sheets update "$ID" "月次!A2:E3" "2026/02/01|商品A|10|1000|=C2*D2,2026/02/02|商品B|5|2000|=C3*D3"
# 5. フォルダ移動(任意)
gog drive move "$ID" --parent "<フォルダID>"
echo "作成完了: https://docs.google.com/spreadsheets/d/$ID/edit"
大量データの一括書き込み
gog sheets update "$ID" "シート1!A1:D5" --values-json '[
["名前", "部署", "役職", "入社日"],
["田中太郎", "営業", "主任", "2024/04/01"],
["佐藤花子", "開発", "リーダー", "2023/01/15"],
["鈴木一郎", "総務", "担当", "2025/07/01"],
["山田次郎", "企画", "マネージャー", "2022/10/01"]
]'
テンプレートからコピーして編集
# 1. コピー
RESULT=$(gog sheets copy "$TEMPLATE_ID" "請求書_202602_山田様" --json)
NEW_ID=$(echo "$RESULT" | jq -r '.id')
# 2. 編集
gog sheets update "$NEW_ID" "請求書!B6" "株式会社山田様"
gog sheets update "$NEW_ID" "請求書!D10" "コンサルティング業務"
echo "作成完了: https://docs.google.com/spreadsheets/d/$NEW_ID/edit"
CellFormat リファレンス
背景色
{"backgroundColor": {"red": 0.9, "green": 0.9, "blue": 0.9}}
RGB値は 0.0〜1.0
テキスト書式
{
"textFormat": {
"bold": true,
"italic": false,
"strikethrough": false,
"underline": false,
"fontSize": 12,
"foregroundColor": {"red": 0, "green": 0, "blue": 0}
}
}
配置
{
"horizontalAlignment": "CENTER",
"verticalAlignment": "MIDDLE"
}
値: LEFT, CENTER, RIGHT / TOP, MIDDLE, BOTTOM
罫線
{
"borders": {
"top": {"style": "SOLID", "color": {"red": 0, "green": 0, "blue": 0}},
"bottom": {"style": "SOLID"},
"left": {"style": "SOLID"},
"right": {"style": "SOLID"}
}
}
gogでできないこと
以下は Sheets API batchUpdate が必要:
- タブの後追加・削除・リネーム
- 入力規則(ドロップダウン)
- 条件付き書式
- セル結合
- 列幅・行高調整
- 行/列の固定(フリーズ)
- フィルター・チャート
よくあるミス
| ミス | 正しい方法 |
|---|---|
update "A1" "a" "b" "c" | update "A1:C1" "a|b|c" |
カンマ入り数値 1,000 | --values-json を使う |
| シート名間違い | metadata で確認 |
| 範囲指定なし | 必ず範囲を明示 |