csvをrubyを使って個別のファイルを作成する

これは使えると思ったのでメモ。

エクセルで入力してもらったものをcsvで出力してもらって、それを1行づつ個別ファイルを作っていきます。例えば、個人の成績を入力してもらって、それを個人にテキストファイルで渡す時など。

スコア

まず、ヘッダー部分を英語表記に変換

スコア

そして、csvで出力してもらいます。

必ず# encoding: utf-8を記述しましょう。忘れるとエラーが出ます。

# encoding: utf-8
require 'csv'

CSV.foreach('sample.csv', headers: true) do |score|
  File.open("#{score['name']}","w") do |kobetsu|
    kobetsu.puts("氏名:#{score['name']}")
    kobetsu.puts("数学:#{score['arithmetic']}")
    kobetsu.puts("英語:#{score['english']}")
  end
end

んで、これを実行するとこうなります。ちゃんと3つファイルが個別に生成されています。

スコア

See Also