Импорт Excel в приложение Rails - PullRequest
30 голосов
/ 12 мая 2010

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

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

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

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

27 голосов
/ 12 мая 2010

"Библиотека электронных таблиц предназначена для чтения и записи документов электронных таблиц. Начиная с версии 0.6.0, поддерживаются только совместимые с Microsoft Excel электронные таблицы. Электронная таблица представляет собой комбинированное / полное переписывание библиотеки электронных таблиц :: Excel от Daniel J. Berger и библиотека ParseExcel от Hannes Wyss. Электронная таблица может читать, записывать и изменять документы электронной таблицы. "

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

15 голосов
/ 02 июня 2010

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

3 голосов
/ 25 февраля 2013

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

2 голосов
/ 03 ноября 2011

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

https://github.com/jalagrange/excel_test_app

...