self[index] -> CSV::Row | [String] | nil
[permalink][rdoc][edit]self[range] -> [CSV::Row]| [Array] | nil
self[header] -> [String] | [nil]
-
ミックスモードでは、このメソッドは引数に行番号を指定すれば行単位で動作し、ヘッダの名前を指定すれば列単位で動作します。
このメソッドを呼び出す前に CSV::Table#by_col! を呼び出すとカラムモードになります。また CSV::Table#by_row! を呼び出すとロウモードになります。
- [PARAM] index:
- ミックスモード・ロウモードでは、取得したい行の行番号を整数で指定します。カラムモードでは、取得したい列の列番号を整数で指定します。
- [PARAM] range:
- 取得したい範囲を整数の範囲で指定します。
- [PARAM] header:
- 取得したい列のヘッダを文字列で指定します。ロウモードでは使用できません。
require "csv" row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"]) row2 = CSV::Row.new(["header1", "header2"], ["row2_1", "row2_2"]) table = CSV::Table.new([row1, row2]) # ミックスモード p table.mode # => :col_or_row p table[0] # => #<CSV::Row "header1":"row1_1" "header2":"row1_2"> p table[1] # => #<CSV::Row "header1":"row2_1" "header2":"row2_2"> p table["header2"] # => ["row1_2", "row2_2"] p table[0..1] # => [#<CSV::Row "header1":"row1_1" "header2":"row1_2">, #<CSV::Row "header1":"row2_1" "header2":"row2_2">] # カラムモード table.by_col! p table.mode # => :col p table[0] # => ["row1_1", "row2_1"] p table[1] # => ["row1_2", "row2_2"] p table["header2"] # => ["row1_2", "row2_2"] p table[0..1] # => [["row1_1", "row1_2"], ["row2_1", "row2_2"]] # ロウモード table.by_row! p table.mode # => :row p table[0] # => #<CSV::Row "header1":"row1_1" "header2":"row1_2"> p table[1] # => #<CSV::Row "header1":"row2_1" "header2":"row2_2"> p table[0..1] # => [#<CSV::Row "header1":"row1_1" "header2":"row1_2">, #<CSV::Row "header1":"row2_1" "header2":"row2_2">]