Array#[] =のドキュメントには、次のように記載されています。
インデックスがアレイの現在の容量よりも大きい場合、アレイは自動的に大きくなります。
それが自動的に成長するとき、それは値でそうしnil
ます:
arr = []
arr[2] = "!"
arr # => [nil, nil, "!"]
これらの最初の2つの値のデフォルトを指定することは可能ですか?
現在、やっています
arr = []
index = 2
currently_uninitialized_value_range = (arr.length)...(index)
default_values = currently_uninitialized_value_range.map{ "" }
arr[currently_uninitialized_value_range] = default_values
arr[index] = "!"
arr # => ["", "", "!"]
これは少し冗長です。
ハッシュではなく配列を使用しています。これは、スプレッドシートに入力する値を表しているためです。使用しているライブラリ(Axlsx)は、データを行ごとに追加することを好みます。