shou2017.com
JP / EN

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

Fri Sep 22, 2017
Sat Aug 10, 2024

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

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

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

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

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

そして、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つファイルが個別に生成されています。

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

See Also