2

株価データの傾向と株価を表示する 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 テーブルを既に作成しています。

4

2 に答える 2

4

私はろーが好きです。xls と xlsx の両方の形式で動作します。
そうは言っても、公式ドキュメントのサンプルコードはあなたの場合には十分です。次のことを行う必要があります。

  • 各シートを反復処理する
  • 各行を繰り返す
  • オブジェクトを作成し、Stocks各行からフィールドに入力する
  • 保存

別の解決策は、Excel を csv として保存し、csv ファイルから db テーブルに直接入力できるfaster_csv gemを使用することです。

于 2012-08-28T10:26:05.610 に答える
1

gem 'spreadsheet' は、おそらく古い Excel 形式 'xls' を解析するための最良の選択です。このガイドを確認してください

また、xlsx を扱いたい場合は、rubyXLの方が適しているかもしれません。

于 2012-08-28T09:28:48.330 に答える