30

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

有谁知道使用 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 -%>

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

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

4

4 回答 4

27

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

编辑
要获取上传的文件,您有两个选择:
1.(推荐)使用文件上传插件,如回形针,它将处理一些细节。
2.按照以下方式使用IO对象:http params[:dump][:excel_file]: //guides.rails.info/form_helpers.html#what-gets-uploaded

于 2010-05-12T09:35:22.910 回答
15

我们使用支持 Open Office、Excel、Google、Excel.xlsx 的roo

于 2010-06-02T07:39:34.257 回答
4

有一个很棒的 RailsCast 关于如何使用roogem 做到这一点:http ://railscasts.com/episodes/396-importing-csv-and-excel

于 2013-02-25T18:03:44.357 回答
2

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

https://github.com/jalagrange/excel_test_app

于 2011-11-03T13:49:25.217 回答