2010-05-12 74 views
29

我正在創建一個供個人使用的小型Rails應用程序,並希望能夠上傳Excel文件以便稍後進行驗證並添加到數據庫中。以前我用csv文件工作過,但這已經變得不切實際了。將Excel導入Rails應用程序

有誰知道使用roo或電子表格gem上傳文件的教程,將內容顯示給用戶,然後添加到數據庫(驗證後)?我知道這是非常具體的,但我想通過這一步一步工作。

所有我至今是「進口」的觀點:

<% form_for :dump, :url=>{:controller=>"students", :action=>"student_import"}, :html => { :multipart => true } do |f| -%> 
    Select an Excel File : 
    <%= f.file_field :excel_file -%> 
    <%= submit_tag 'Submit' -%> 
<% end -%> 

,但不知道如何訪問這個上傳的文件在控制器中。

任何建議/幫助將受到歡迎。 感謝

+0

出於好奇,爲什麼是csv文件版本不切實際的?爲了上傳學生,是否需要最終用戶做很多事情?我擔心我的用戶可能會因爲不得不轉而使用csv而受到威脅。 – 2012-10-18 16:00:58

回答

27

「電子表格庫旨在讀寫電子表格文檔。由於0.6.0版本中,只有微軟的Excel電子表格兼容支持。電子表格是組合/完全重寫Daniel J. Berger的Spreadsheet :: Excel Library和Hannes Wyss的ParseExcel Library。Spreadsheet可以讀取,編寫和修改Spreadsheet Documents。「

編輯
要獲取上傳的文件,你有兩個選擇:
1(推薦)使用一些文件上傳插件,像paperclip,它會處理的比特和螺栓。
2.使用IO對象params[:dump][:excel_file]按:http://guides.rails.info/form_helpers.html#what-gets-uploaded

15

我們使用roo支持的Open Office,Excel中,谷歌,Excel.xlsx

+0

太棒了! thxnx很多 – fl00r 2010-10-06 13:43:10

2

嘿,我使用電子表格的寶石和寫了一個簡單的應用程序,以瞭解如何它都融合在一起。目前,它運行在Rails的3.1和Carrierwave,希望這有助於:

https://github.com/jalagrange/excel_test_app

+0

該應用程序未在本地運行。你知道爲什麼嗎? – CodeBiker 2013-07-01 20:03:08