我有一個Excel電子表格中的數據,我想通過Rails將其導入到數據庫中。我正在使用Rails 3.2.3和Ruby 1.9.2。通過Rails將數據從SQL文件或Excel文件導入數據庫
數據是用戶名和密碼,文件名是member.xlsx
。
<%= form_for @member do |f| %>
<%= f.text_field :import,
:maxlength=>'50',
:style=>'width: 250px;',
:placeholder => 'browse file *.sql or *.xlsx' %>
<%= f.submit %><% end %>
我的表:
create_table :members do |t|
t.string :username
t.string :password_hash
t.string :password_salt
解決
解決方案
我使用電子表格創業板解析Excel文件並上傳Excel文件中的CarrierWave寶石。因爲我使用的色器件模型用戶,這裏就是導入文件控制器類似
def import
if params[:excel_file].nil?
redirect_to user_new_import_path, :flash => { :error => 'You have not selected a file'}
else
test_file = params[:excel_file]
file = ExcelUploader.new
file.store!(test_file)
book = Spreadsheet.open "#{file.store_path}"
sheet1 = book.worksheet 0
sheet1.each 1 do |row|
name = row[0]
email = row[2]
generated_password = Devise.friendly_token.first(6)
temp_password = generated_password
@user = User.create(:name => name, :email => email, :password => temp_password, :password_confirmation => temp_password)
UserMailer.password_send(@user).deliver
end
if @user.save
redirect_to users_path, :notice => "success"
else
redirect_to new_import_user_path, :flash => { :error => 'error. try again' }
end
end
end
「*你可以給我一些代碼,告訴我這樣做的最好方法嗎?*」。不,這不是什麼。先去一趟,然後再回來一個更具體的問題,如果它不起作用。 – eggyal
歡迎來到StackOverflow!記得點贊所有有用的答案。包括解答他人的問題。並接受/檢查你自己問題的最佳答案。 –