将Excel导入Rails应用程序

时间:2010-05-12 09:31:55

标签: ruby-on-rails spreadsheet gem

我正在创建一个供个人使用的小型rails应用程序,并希望能够上传excel文件以便以后进行验证并添加到数据库中。我之前使用过csv文件,但这已经变得不切实际了。

有没有人知道使用roo或spreadsheet 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 -%>

但不知道如何在控制器中访问此上传文件。

欢迎任何建议/帮助。 感谢

4 个答案:

答案 0 :(得分:27)

“电子表格库旨在读取和写入电子表格文档。从版本0.6.0开始,仅支持Microsoft Excel兼容的电子表格。电子表格是由Daniel J. Berger组合/完全重写的电子表格:: Excel库和Hannes Wyss的ParseExcel库。电子表格可以读取,编写和修改电子表格文档。“

EDIT
要获取上传的文件,您有两种选择:
1.(推荐)使用像paperclip这样的文件上传插件,它将处理位和螺栓 2.按照http://guides.rails.info/form_helpers.html#what-gets-uploaded

使用IO对象params[:dump][:excel_file]

答案 1 :(得分:15)

我们使用支持Open Office,Excel,Google,Excel.xlsx

roo

答案 2 :(得分:3)

关于如何使用roo gem执行此操作,有一个很棒的RailsCast:http://railscasts.com/episodes/396-importing-csv-and-excel

答案 3 :(得分:2)

嘿,我使用电子表格gem并编写了一个简单的应用程序,以了解它们如何组合在一起。它目前运行在Rails 3.1和Carrierwave上,希望这会有所帮助:

https://github.com/jalagrange/excel_test_app