Импорт Excel в приложение Rails

Я создаю небольшое приложение rails для личного использования и хотел бы иметь возможность загружать файлы Excel для последующей проверки и добавления в базу данных. Раньше у меня это работало с файлами csv, но с тех пор это стало непрактичным.

Кто-нибудь знает учебник по использованию драгоценного камня roo или электронной таблицы для загрузки файла, отображения содержимого пользователю и последующего добавления в базу данных (после проверки)? Я знаю, что это довольно специфично, но я хочу работать с этим шаг за шагом.

Все, что у меня есть до сих пор, это «импорт»:

<% 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 -%>

Но понятия не имею, как получить доступ к этому загруженному файлу в контроллере.

Любые предложения/помощь будут приветствоваться. Спасибо


person Jack    schedule 12.05.2010    source источник
comment
Из любопытства, почему версия файла csv оказалась непрактичной? Требовалось ли от конечного пользователя многого, чтобы загрузить студента? Я боюсь, что мои пользователи могут быть запуганы необходимостью конвертировать в csv.   -  person E.E.33    schedule 18.10.2012


Ответы (4)


«Библиотека электронных таблиц предназначена для чтения и записи электронных таблиц. Начиная с версии 0.6.0 поддерживаются только электронные таблицы, совместимые с Microsoft Excel. Библиотека Ханнеса Висса. Электронная таблица может читать, писать и изменять электронные таблицы.

РЕДАКТИРОВАТЬ
Чтобы получить загруженный файл, у вас есть два варианта:
1. (рекомендуется) использовать плагин для загрузки файлов, например скрепка, и она будет обрабатывать все детали.
2. использовать объект ввода-вывода params[:dump][:excel_file] согласно: http://guides.rails.info/form_helpers.html#what-gets-uploaded

person clyfe    schedule 12.05.2010

мы используем roo, которые поддерживают Open Office,Excel,Google,Excel.xlsx

person allenwei    schedule 02.06.2010
comment
но roo не имеет функции сохранения файла .xlsx, только чтение и анализ. или я не прав? - person bmalets; 19.03.2018

Существует отличный RailsCast о том, как это сделать с помощью roo gem: http://railscasts.com/episodes/396-importing-csv-and-excel

person cgenco    schedule 25.02.2013

Эй, я использую гем электронных таблиц и написал простое приложение, чтобы понять, как все это сочетается друг с другом. В настоящее время он работает на Rails 3.1 и Carrierwave, надеюсь, это поможет:

https://github.com/jalagrange/excel_test_app

person jalagrange    schedule 03.11.2011
comment
Приложение не работает локально. Вы знаете, почему? - person CodeBiker; 02.07.2013