railsはexcelファイルをデータベースにインポートする方法
1274 ワード
詳細
スクリプトがexcelファイルをデータベース対応フィールドにインポートする必要があるという小さな要件があります.
ちょうどtaskの練習ができますが、まず何かいいgemが利用できるかどうか調べてみましょう(怠け者で許してください)
「roo」を見つけてgemfileに戻ると、プロジェクトにこのgemが含まれていることがわかりました.うん、みんな使っているようですが、使い方を見てみると簡単で、とても使いやすいです.
新しいrakeタスクを作成すると、小さなタスクを開始できます.
実行rake v 5_8_5:a_change_offer_preferred
データ移行は可能ですが、実際にはlogを付けたり、フォールトトレランスを更新したりして、異常レベル制をキャプチャしたほうが完璧です.どのようにこのgemはとても使いやすいかどうか、公式のドキュメントの上でcsvなどの多くの方法を導入することがあります
リンクを添付https://github.com/roo-rb/roo
スクリプトが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 v 5_8_5:a_change_offer_preferred
データ移行は可能ですが、実際にはlogを付けたり、フォールトトレランスを更新したりして、異常レベル制をキャプチャしたほうが完璧です.どのようにこのgemはとても使いやすいかどうか、公式のドキュメントの上でcsvなどの多くの方法を導入することがあります
リンクを添付https://github.com/roo-rb/roo