Google Sheets API (Ruby) で update_spreadsheet_value メソッドの引数の意味

前提

以下のようなメソッド実行例です。

便宜上、以降では以下のコメントに基づいて 1つめ、2つ目... という形で引数を呼ぶことにします

service.update_spreadsheet_value(
  sheet_id, # 1つめ
  range, # 2つめ
  value_range_object,  # 3つめ
  value_input_option: 'USER_ENTERED' # 4つめ
)

結論

1. 1つめの引数

シートの ID です。

2. 2つめの引数

書き込みの範囲です。'今月の予算シート!B10:F20' のような値が入ります。

より脳に負荷をかけない方法としては、'今月の予算シート!A1:Z10000' というように常にめいいっぱいの範囲を指定し*1、渡す値 (values) の側で空の値なり空の行や列なりを明示的に指定する、という方法があります*2

可変の変数はなるべく減らし、実質固定値としたいです。

3. 3つめの引数

以下のようなオブジェクトが入ります。Google::Apis::SheetsV4::ValueRange のインスタンスであることに注意です。

Google::Apis::SheetsV4::ValueRange.new(values: values)

ここで values こそが書き込む値(の配列)です。values は二次元配列の構造で、「『行に入る値の配列』の配列」が入ります。

CSV で考えるとわかりやすいです。例えば以下のようなCSVの値を入力したいとします。

あ,い,う
1,2,3,4,5,6,7
A,B

これを values で表現すると以下のようになります。

values = [
  ['', '', ''],
  ['1', '2', '3', '4', '5', '6', '7'],
  ['A', 'B'],
]

4. 4つめの引数

キーワード引数となっており、value_input_option: に対して RAWSUSER_ENTERED かを選べます。

前者はたとえば 'true' という値を渡して入力すると true としてシートに入力されます。

後者は同様に入力すると TRUE としてシートに入力されます。こちらの方が人間が入力する場合と同様なのでこちらが良いと思います*3

補足

  • これ以外にもオプションはあります
  • Ruby の例ですが、多言語でも実質的には同じだと思います

*1:何をもって「めいいっぱい」かは状況によりますが

*2:いつもおすすめできるものではありません

*3:文字列にしたい場合は "'true" のように「先頭にだけ」シングルクォーテーションを付与して渡す

Powered by はてなブログ