`

rails使用fasterCSV将csv文件导入到数据库

阅读更多
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


分享到:
评论
1 楼 zxboom 2009-01-19  
非常感谢,好用。

相关推荐

Global site tag (gtag.js) - Google Analytics