- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2016-04-30T14:44:04+09:00","default:wikiwriter","wikiwriter")
*目次 [#d55b1a28]
#contents
*関連ページ [#w944b4ad]
-[[Ruby]]
*基本 [#xf3376b6]
csv.rbが標準添付されているのでそれを使う。
*全行読み込み [#s254dcfd]
CSV.readlinesを使う。
-CSV.readlinesを使う。配列の配列が帰ってくる
#pre{{
lines = CSV.readlines(filename)
lines.each do |line|
p lines[0] # 最初の列
p lines[1] # 次の列
end
CSV.readlines("test.csv").each do |row|
p row
end
#=>
#["a", "b", "c"]
#["d", "e", "f"]
}}
*文字列読み込み [#b1ed62fd]
-CSV.parseを使う。配列の配列が帰ってくる
#pre{{
CSV.parse("a,b,c").each do |row|
p row
end
#=>
#["a", "b", "c"]
CSV.parse("a,b,c\nd,e,f").each do |row|
p row
end
#=>
#["a", "b", "c"]
#["d", "e", "f"]
r = CSV.parse("x,y,z")
p r
#=>
#[["x", "y", "z"]]
}}
*Ruby1.9対応 [#pf9c30f5]
**エンコーディングを指定した読み込み [#s79e2dfe]
-ファイルの文字コードが分かっている場合、foreachでencodingを指定して読み込める
#pre{{
CSV.foreach(filename, encoding:"Windows-31J") do |row|
end
}}
**エンコーディングを指定した書き出し [#oa4c937a]
-ファイルのエンコーディングをopenで指定する。
#pre{{
CSV.open(filename, "wb:SJIS") do |csv|
csv << ["あ", "い", "う"]
end
CSV.open(filename, "wb", encoding:"SJIS") do |csv|
csv << ["か", "き", "く"]
end
}}