Импорт Excel в приложение Rails
Я создаю небольшое приложение rails для личного использования и хочу иметь возможность загружать файлы excel, чтобы впоследствии быть проверенными и добавленными в базу данных. У меня было это раньше с csv файлами, но с тех пор это стало непрактичным.
Кто-нибудь знает учебник по использованию роя или таблицы для загрузки файла, отображения содержимого пользователю и последующего добавления в базу данных (после проверки)? Я знаю, что это довольно специфично, но я хочу работать поэтапно.
Все, что я до сих пор представляет собой "импорт":
<% 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 -%>
Но понятия не имею, как получить доступ к этому загруженному файлу в контроллере.
Любые предложения/помощь будут приветствоваться.
Благодаря
Ответы
Ответ 1
"Библиотека электронных таблиц предназначена для чтения и записи документов электронных таблиц. Начиная с версии 0.6.0 поддерживаются только электронные таблицы, совместимые с Microsoft Excel. Электронная таблица представляет собой комбинацию/полную переписку библиотеки электронных таблиц:: Excel от Daniel J. Berger и библиотека ParseExcel от Hannes Wyss. Электронная таблица может читать, писать и изменять документы электронных таблиц."
ИЗМЕНИТЬ
Чтобы получить загруженный файл, у вас есть два варианта:
1. (рекомендуется) Используйте что-то плагин для загрузки файлов, например paperclip, и он будет обрабатывать бит и болты.
2. используйте объект IO params[:dump][:excel_file]
в соответствии с: http://guides.rails.info/form_helpers.html#what-gets-uploaded
Ответ 2
мы используем roo, которые поддерживают Open Office, Excel, Google, Excel.xlsx
Ответ 3
Там отличный RailsCast о том, как это сделать с помощью roo
gem: http://railscasts.com/episodes/396-importing-csv-and-excel
Ответ 4
Эй, я использую драгоценный камень электронной таблицы и написал простое приложение, чтобы понять, как все это сочетается. В настоящее время он работает на Rails 3.1 и Carrierwave, надеюсь, что это поможет:
https://github.com/jalagrange/excel_test_app