
Google Sheets Ops
- 22 installs
- 3 repo stars
- Updated February 16, 2026
- naoterumaker/openclaw-gog-skills
Helps with ai & agent building tasks.
About
google-sheets-ops is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted development.
- google-sheets-ops
- AI & Agent Building
- AI-coding skill
Google Sheets Ops by the numbers
- 22 all-time installs (skills.sh)
- Ranked #10,169 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/naoterumaker/openclaw-gog-skills --skill google-sheets-opsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 22 |
|---|---|
| repo stars | ★ 3 |
| Last updated | February 16, 2026 |
| Repository | naoterumaker/openclaw-gog-skills ↗ |
What it does
Helps with ai & agent building tasks.
Files
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\ |
カンマ入り数値 1,000 | --values-json を使う |
| シート名間違い | metadata で確認 |
| 範囲指定なし | 必ず範囲を明示 |
gog sheets コマンドリファレンス
コマンド一覧
| コマンド | 用途 |
|---|---|
gog sheets create | スプレッドシート新規作成 |
gog sheets get | セル値の読み取り |
gog sheets update | セル値の書き込み(上書き) |
gog sheets append | 行の追加 |
gog sheets clear | セル値のクリア |
gog sheets format | 書式設定 |
gog sheets metadata | スプレッドシート情報取得 |
gog sheets copy | スプレッドシートのコピー |
gog sheets export | PDF/XLSX/CSV出力 |
---
⚠️ 最重要: 値の区切りルール
セル区切り: パイプ `|` 行区切り: カンマ `,`
# ✅ 正しい: パイプでセル区切り + 範囲を明示
gog sheets update "$ID" "Sheet!A1:C1" "値1|値2|値3"
# ❌ 間違い: スペース区切り → 全部1セルに結合される
gog sheets update "$ID" "Sheet!A1:C1" "値1" "値2" "値3"
# ❌ 間違い: 範囲がA1だけ → パイプがあっても1セルに入る可能性
gog sheets update "$ID" "Sheet!A1" "値1|値2|値3"複数行を一度に書く
# カンマで行区切り、パイプでセル区切り
gog sheets update "$ID" "Sheet!A1:C2" "ヘッダ1|ヘッダ2|ヘッダ3,値1|値2|値3"JSON形式での値指定(推奨: 複雑なデータ向け)
# カンマやパイプを含むデータも安全に書ける
gog sheets update "$ID" "Sheet!A1:C2" --values-json '[["名前","金額","備考"],["田中","500,000","初回|特別"]]'appendも同様
# ✅ 正しい
gog sheets append "$ID" "Sheet!A:C" "値1|値2|値3"
# ✅ JSON形式
gog sheets append "$ID" "Sheet" --values-json '[["値1","値2","値3"]]'---
create - スプレッドシート作成
# 基本(タブ1つ: デフォルト名「シート1」)
gog sheets create "タイトル"
# 複数タブ付きで作成(⚠️ 後からタブ追加はgogでは不可能)
gog sheets create "タイトル" --sheets "クライアント,プロジェクト,タスク,設定"重要: `--sheets`を使わないとタブは1つだけ。gogにはタブの後追加・削除・リネーム機能がない。必ずcreate時に全タブを指定する。
---
get - 値の読み取り
gog sheets get "$ID" "シート名!A1:D10" # テーブル表示
gog sheets get "$ID" "シート名!A1:D10" --json # JSON出力(プログラム処理向け)
gog sheets get "$ID" "シート名!A1:D10" --plain # TSV出力--json出力で確認すべきこと: 値が正しくセル分離されているか(配列の要素数=列数)
---
update - 値の書き込み
# 基本: パイプ区切り + 範囲明示
gog sheets update "$ID" "シート!A1:D1" "A|B|C|D"
# 複数行
gog sheets update "$ID" "シート!A1:C3" "名前|年齢|部署,田中|30|営業,佐藤|25|開発"
# JSON形式(カンマ・パイプを含むデータに安全)
gog sheets update "$ID" "シート!A1:C2" --values-json '[["項目","金額"],["サービスA","1,500,000"]]'
# 数式を書く
gog sheets update "$ID" "シート!D2:D2" "=SUM(B2:C2)"
# 数式を文字列として書く(計算させない)
gog sheets update "$ID" "シート!A1:A1" "=SUM(B1:B10)" --input RAW
# 入力規則をコピー
gog sheets update "$ID" "シート!A2:A100" "値" --copy-validation-from "シート!A2:A2"--input オプション:
USER_ENTERED(デフォルト): 数式は計算、日付は日付として解釈RAW: すべて文字列として保存
---
append - 行追加
# シート名 or 列範囲で指定
gog sheets append "$ID" "シート!A:D" "値1|値2|値3|値4"
# JSON形式
gog sheets append "$ID" "シート" --values-json '[["値1","値2","値3"]]'
# 既存行を下にずらして挿入
gog sheets append "$ID" "シート" "値" --insert INSERT_ROWS---
clear - クリア
gog sheets clear "$ID" "シート!A1:Z1000" # 全クリア
gog sheets clear "$ID" "シート!A2:A100" # 特定範囲---
format - 書式設定
--format-json に Google Sheets API の CellFormat JSON を渡す。 --format-fields でどのフィールドを適用するか指定。
CellFormat の主要フィールド
| フィールド | 型 | 説明 |
|---|---|---|
backgroundColor | {red,green,blue,alpha} | 背景色(0.0〜1.0) |
textFormat | object | フォント設定 |
textFormat.bold | bool | 太字 |
textFormat.italic | bool | 斜体 |
textFormat.strikethrough | bool | 取り消し線 |
textFormat.underline | bool | 下線 |
textFormat.fontSize | int | フォントサイズ |
textFormat.foregroundColor | {red,green,blue} | 文字色 |
textFormat.fontFamily | string | フォント名 |
horizontalAlignment | string | LEFT/CENTER/RIGHT |
verticalAlignment | string | TOP/MIDDLE/BOTTOM |
wrapStrategy | string | OVERFLOW_CELL/WRAP/CLIP |
numberFormat | {type,pattern} | 数値フォーマット |
borders | object | 罫線 |
よく使う書式パターン
ヘッダー(青背景・白太字):
gog sheets format "$ID" "シート!A1:H1" \
--format-json '{"backgroundColor":{"red":0.2,"green":0.4,"blue":0.7},"textFormat":{"bold":true,"foregroundColor":{"red":1,"green":1,"blue":1}}}' \
--format-fields "userEnteredFormat(backgroundColor,textFormat)"太字のみ:
gog sheets format "$ID" "シート!A1:A10" \
--format-json '{"textFormat":{"bold":true}}' \
--format-fields "userEnteredFormat.textFormat.bold"背景色(黄色ハイライト):
gog sheets format "$ID" "シート!A1:H1" \
--format-json '{"backgroundColor":{"red":1,"green":0.95,"blue":0.8}}' \
--format-fields "userEnteredFormat.backgroundColor"中央揃え:
gog sheets format "$ID" "シート!A1:H1" \
--format-json '{"horizontalAlignment":"CENTER"}' \
--format-fields "userEnteredFormat.horizontalAlignment"テキスト折り返し:
gog sheets format "$ID" "シート!A1:H100" \
--format-json '{"wrapStrategy":"WRAP"}' \
--format-fields "userEnteredFormat.wrapStrategy"数値フォーマット(カンマ区切り):
gog sheets format "$ID" "シート!G2:G100" \
--format-json '{"numberFormat":{"type":"NUMBER","pattern":"#,##0"}}' \
--format-fields "userEnteredFormat.numberFormat"日付フォーマット:
gog sheets format "$ID" "シート!F2:F100" \
--format-json '{"numberFormat":{"type":"DATE","pattern":"yyyy/mm/dd"}}' \
--format-fields "userEnteredFormat.numberFormat"罫線(下線のみ):
gog sheets format "$ID" "シート!A1:H1" \
--format-json '{"borders":{"bottom":{"style":"SOLID","color":{"red":0,"green":0,"blue":0}}}}' \
--format-fields "userEnteredFormat.borders"複合書式(複数フィールドを一度に):
gog sheets format "$ID" "シート!A1:H1" \
--format-json '{"backgroundColor":{"red":0.2,"green":0.4,"blue":0.7},"textFormat":{"bold":true,"foregroundColor":{"red":1,"green":1,"blue":1},"fontSize":11},"horizontalAlignment":"CENTER","borders":{"bottom":{"style":"SOLID","color":{"red":0,"green":0,"blue":0}}}}' \
--format-fields "userEnteredFormat(backgroundColor,textFormat,horizontalAlignment,borders)"---
metadata - スプレッドシート情報
gog sheets metadata "$ID" # タブ一覧・行列数
gog sheets metadata "$ID" --json # JSON出力用途: タブ名の確認(日本語ロケールだと「シート1」)、シートID取得
---
copy - コピー
gog sheets copy "$ID" "コピー先タイトル"
gog sheets copy "$ID" "コピー先タイトル" --parent "フォルダID"---
export - エクスポート
gog sheets export "$ID" --format csv
gog sheets export "$ID" --format xlsx
gog sheets export "$ID" --format pdf---
Drive連携(ファイル操作)
gog drive mkdir "フォルダ名" # フォルダ作成
gog drive move "$ID" --parent "フォルダID" # ファイル移動
gog drive rename "$ID" "新しい名前" # リネーム
gog drive share "$ID" --email "user@example.com" --role writer # 共有---
gogでできないこと(Google Sheets API直接 or GAS が必要)
| 機能 | 代替手段 |
|---|---|
| タブの後追加・削除・リネーム | Sheets API batchUpdate の addSheet/deleteSheet/updateSheetProperties |
| 入力規則(ドロップダウン等)の設定 | Sheets API batchUpdate の setDataValidation |
| 条件付き書式 | Sheets API batchUpdate の addConditionalFormatRule |
| セル結合 | Sheets API batchUpdate の mergeCells |
| 列幅・行高の調整 | Sheets API batchUpdate の updateDimensionProperties |
| 行/列の固定(フリーズ) | Sheets API batchUpdate の updateSheetProperties (frozenRowCount) |
| 列/行の自動リサイズ | Sheets API batchUpdate の autoResizeDimensions |
| フィルター設定 | Sheets API batchUpdate の setBasicFilter |
| チャート作成 | Sheets API batchUpdate の addChart |
| シートの保護 | Sheets API batchUpdate の addProtectedRange |
Sheets API batchUpdate を使うには
gogからは直接叩けない。以下の方法が必要: 1. Node.js googleapis パッケージ(npm install googleapis) 2. clasp + GAS でApps Script経由 3. curl + OAuthトークン(gogのkeychain経由は難しい場合あり)
トークンの取得が課題。gogはmacOS Keychainにトークンを保存しており、security find-generic-password -s "gogcli" -w で取得可能だが、Touch ID/パスワードプロンプトが出る場合がある。
keyring backend を file に変更する方法(headless対応)
# fileバックエンドに切り替え
gog auth keyring file
# 環境変数でパスワード設定
export GOG_KEYRING_PASSWORD='your-password'
# これでsecurity コマンド不要になる---
SpreadsheetID の取得
URLから: https://docs.google.com/spreadsheets/d/<ここがID>/edit
---
日本語環境の注意
- デフォルトシート名:
シート1(Sheet1ではない) gog sheets metadataで正確なシート名を必ず確認- シート名にスペースや特殊文字がある場合はシングルクォートで囲む:
'シート 1'!A1:B2
---
よくあるミスと対策
| ミス | 症状 | 対策 |
|---|---|---|
| スペース区切りで値を渡す | 全部1セルに結合 | パイプ `\ |
範囲をA1だけにする | 1セルにしか書けない | A1:C1のように終点も指定 |
| create後にタブ追加しようとする | コマンドがない | --sheetsで最初に全部作る |
| カンマ含む値をパイプ区切りで書く | 意図しない行分割 | --values-jsonを使う |
| metadataを確認せずシート名を推測 | range parse error | 必ずmetadataで確認 |