欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

rails 如何将excel文件导入数据库 博客分类: ruby ruby 

程序员文章站 2024-02-26 15:00:58
...

     有一个小需求,需要一个脚本将excel文件导入数据库对应字段。

     正好可以练习一下task,不过首先先查查有没有什么好gem可以利用下(原谅我这么懒)

     找到一个'roo' 回到gemfile中发现项目中已经包含了这个gem,恩看样子大家都在用,查看了一下用法还是很简单,非常好用。

     

# excel
gem 'roo', '~> 2.3.2', require: false
    在 gemfile中添加上这个gem

 

    然后创建一个新的rake任务,就可以开始我们的小任务了

    

namespace :v5_8_5 do
  task a_change_offer_preferred: :environment do
    require 'roo'  
    file = "#{Rails.root}/tmp/preferred_offers.xlsx" # 将文本路径赋给对象
    if File.exists?(file)
      # 打开文本赋值给xlsx对象,将文本第一列赋值给对象sheet
      xlsx       = Roo::Spreadsheet.open(file, extension: :xlsx)
      sheet      = xlsx.sheet(0)
 
      # 这里将读取出来的数据更新到数据表中
      sheet.each do |row|
        offer = Offer.find_by(id: row[0])
        offer.update_columns(description: row[2], position: row[3])
      end
    end
  end
end

   执行 rake v5_8_5:a_change_offer_preferred

  就可以进行数据迁移了,当然实际中最好加上log,以及更新容错,捕获异常等级制才显得更加完善。

   怎么样 这个gem是不是很好用,官方文档上还有导入csv 等等很多的方法

   附上链接 https://github.com/roo-rb/roo 

 

相关标签: ruby