从excel文件读取数据到postgres数据库(Active Record)

时间:2012-08-28 09:17:01

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord ruby-on-rails-3.1

我正在构建一个显示股票数据趋势和股票报价的Web应用程序。数据已经在excel文件中发送给我,我现在需要将其加载到数据库中。 excel文件包含每种库存的每日库存数据,其格式为以下格式:

日期|出价|报价|价格|卷

每个库存都在文件的单独工作表中,如下所示,每个块都是一个工作表:

Stock1 | Stock2 | Stock3 | Stock4

将excel电子表格中的数据加载到DailyQuotes表的最佳方法是什么,DailyQuotes表的迁移文件如下:

class CreateDailyQuotes < ActiveRecord::Migration
  def change
    create_table :daily_quotes do |t|
      t.date :date
      t.decimal :bid
      t.decimal :offer
      t.decimal :price
      t.integer :volume
      t.integer :stock_id

  t.timestamps
    end
  end
end

我已经创建了Stocks表,其中StockName和ID为列。

2 个答案:

答案 0 :(得分:4)

我喜欢roo。它适用于xls和xlsx格式 也就是说,官方文档中的示例代码足以满足您的需求。您需要执行以下操作:

  • 遍历每张表格
  • 遍历每一行
  • 创建Stocks对象并填充每行的字段
  • 保存

另一种解决方案是将您的Excel保存为csv,并使用faster_csv gem,它允许您直接从csv文件填充数据库表。

答案 1 :(得分:1)

gem'电子表格'可能是解析旧excel格式'xls'的最佳选择。请检查此guide

如果你想处理xlsx,也许rubyXL更好。