self[index_or_header] = value
[permalink][rdoc][edit]-
ミックスモードでは、このメソッドは引数に行番号を指定すれば行単位で動作し、ヘッダの名前を指定すれば列単位で動作します。
このメソッドを呼び出す前に CSV::Table#by_col! を呼び出すとカラムモードになります。また CSV::Table#by_row! を呼び出すとロウモードになります。
行には配列か CSV::Row のインスタンスを指定します。
列に値を一つだけ指定した場合は、全ての行にその値をコピーします。配列を指定した場合は、上から順に値を割り当てます。余分な値は無視します。また、値が不足している場合は nil を割り当てます。
既存の行または列のデータを上書きします。新しい列を追加する場合は、右端に列を追加します。
- [PARAM] index_or_header:
- 行番号かヘッダの名前を指定します。
- [PARAM] value:
- 値を指定します。
require "csv" row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"]) row2 = CSV::Row.new(["header1", "header2"], ["row2_1", "row2_2"]) row3 = CSV::Row.new(["header1", "header2"], ["row3_1", "row3_2"]) table = CSV::Table.new([row1, row2]) table[0] # => #<CSV::Row "header1":"row1_1" "header2":"row1_2"> table[1] # => #<CSV::Row "header1":"row2_1" "header2":"row2_2"> table[1] = row3 table[1] # => #<CSV::Row "header1":"row3_1" "header2":"row3_2"> table.by_col! table[0] # => ["row1_1", "row3_1"] table[1] # => ["row1_2", "row3_2"] table[1] = ["row1_2", "row2_2"] table[1] # => ["row1_2", "row2_2"]