fasterCSV是一个处理 CSV 文件的库,
在ruby on rails中,使用fasterCSV解析csv文件比标准库的csv要快10倍左右
1.安装fasterCSV
gem install fastercsv
2.view层,import_user.rhtml
<% form_for :user, :url=>{:controller=>"user", :action=>"import"}, :html => { :multipart => true } do |f| -%>
上传用户资料导入数据:
<%= file_field :user, :file, :id=>'csvfile' %>
<%= submit_tag 'Submit' -%>
<%= end %>
3.controller层
对上传过来的csv文件处理下,得到一个该csv文件的路径filepath
require 'fastercsv'
def import
FasterCSV.foreach(filepath) do |rows|
begin
User.transaction do
rows.each do |row|
user = User.new
user.username = row[0]
user.password = row[1]
user.save!
end
errorMessages << "操作成功!"
end
rescue Exception => e
errorMessages << e
errorMessages << "操作失败,请重新导入!"
end
end