【问题标题】:Read data from excel file to postgres database (Active Record)从 excel 文件中读取数据到 postgres 数据库(Active Record)
【发布时间】:2012-08-28 09:17:00
【问题描述】:

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

日期 |出价 |报价 |价格 |音量

并且每只股票都在文件中的一个单独的工作表中,如下所示,每个块都是一个工作表:

库存1 |库存2 |库存3 |库存4

我将这些数据从 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

我已经创建了一个以 StockName 和 ID 作为列的 Stocks 表。

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多