Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > csvライブラリ > CSV::Writerクラス

class CSV::Writer

クラスの継承リスト: CSV::Writer < Object < Kernel

要約

CSVの書き込み時のベースとなるクラス

目次

特異メソッド
create generate
インスタンスメソッド
<< add_row close
privateメソッド
terminate

特異メソッド

create(str_or_writable, fs = ',', rs = nil) -> CSV::BasicWriter[permalink][rdoc]

str_or_writable を書き込み先とする CSV::BasicWriter クラスのインスタンスを生成します。

[PARAM] str_or_writable:
CSVデータの書き込み先。このパラメータとして渡すインスタンスには<<メソッドが定義されている必要があります。
[PARAM] fs:
書き込みデータのフィールドセパレータの指定。 nil (デフォルト) で ',' をセパレータとします。
[PARAM] rs:
行区切り文字の指定。nil (デフォルト) で CrLf / Lf。 Cr を行区切りとしたい場合は ?\r を渡します。
generate(str_or_writable, fs = ',', rs = nil) -> CSV::BasicWriter[permalink][rdoc]
generate(str_or_writable, fs = ',', rs = nil) { |row| ... } -> nil

str_or_writable を書き込み先とする CSV::BasicWriter クラスのインスタンスを生成し、書き込み先(str_or_writable)をブロックに渡します。

[PARAM] str_or_writable:
CSVデータの書き込み先。このパラメータとして渡すインスタンスには<<メソッドが定義されている必要があります。
[PARAM] fs:
書き込みデータのフィールドセパレータの指定。 nil (デフォルト) で ',' をセパレータとします。
[PARAM] rs:
行区切り文字の指定。nil (デフォルト) で CrLf / Lf。 Cr を行区切りとしたい場合は ?\r を渡します。

例:

s = "1,2,3,4\n"
CSV::Writer.generate(s){|data|
  data << ['a', 'b', 'c']
}
p s #=> "1,2,3,4\na,b,c\n"

インスタンスメソッド

self << row -> CSV::BasicWriter[permalink][rdoc]
add_row(row) -> CSV::BasicWriter

引数で渡されたデータを1行分としてCSVデータに追加します。

[PARAM] row:
1行文として書き込み先に追加するデータ。 String あるいは Array オブジェクトである必要があります。
注意

データ追加時に""(空文字)と値なし(nil)を区別します。 例えば、["a", "", nil, "b"] の配列を渡した場合に a, "", , b という行が追加されます。

例:

csv_w = CSV::Writer.generate("")
row = [1, 2, 3]
csv_w.add_row(row)         #=> "1,2,3\n"
row = ["a", "", nil, "b"]
csv_w.add_row(row)         #=> "1,2,3\na,\"\",,b\n"
close -> nil[permalink][rdoc]

privateのterminateメソッドを呼び出します。

privateメソッド

terminate -> nil[permalink][rdoc]

インスタンス破棄時処理が必要な場合に再定義してください。