web-dev-qa-db-fra.com

Importer Excel dans Rails application

Je crée un petit Rails App pour une utilisation personnelle et souhaitez pouvoir télécharger des fichiers Excel vers ultérieurement être validés et ajoutés à la base de données. J'avais ce fonctionnement auparavant avec les fichiers CSV, mais cela est depuis devenu peu pratique.

Est-ce que quelqu'un connaît un didacticiel pour utiliser le gem de la feuille de roo ou de la feuille de calcul pour télécharger le fichier, afficher le contenu à l'utilisateur, puis ajouter à la base de données (après validation)? Je sais que cela est assez spécifique, mais je veux travailler à travers cette étape.

Tout ce que j'ai jusqu'à présent est une vue "importation":

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

Mais ne savez pas comment accéder à ce fichier téléchargé dans le contrôleur.

Toute suggestion/aide serait accueillie. Merci

30
Jack

"La bibliothèque de tableurs est conçue pour lire et écrire des documents de feuille de calcul. À partir de la version 0.6.0, seules les feuilles de calcul compatibles Microsoft Excel sont prises en charge. Spreadsheet est une combinaison/réécriture complète de la feuille de calcul :: Excel Library de Daniel J. Berger et le Parseexcel Bibliothèque par Hannes Wyss. La feuille de calcul peut lire, écrire et modifier des documents de tableur. "

ÉDITER
[.____] Pour obtenir le fichier téléchargé, vous avez deux options:
1. (Recommandé) Utilisez quelque chose d'un plug-in de téléchargement de fichier comme - PaperClip et il gérera les bits et les boulons.
[.____] 2. Utilisez le IO objet params[:dump][:Excel_file] selon: http://guides.rails.info/form_helpers.html#what-gets-uploaded

27
clyfe

nous utilisons ROO qui prend en charge Open Office, Excel, Google, Excel.xlsx

15
allenwei

Il y a un excellent railscast sur la façon de faire cela avec le roo gem: http://railcastss.com/episodes/396-importing-csv-and-excel

3
cgenco

Hey, j'utilise la feuille de calcul et écrit une application simple pour comprendre comment tout cela correspond ensemble. Il court actuellement sur Rails 3.1 et Carrierwave, espérons que cela aide:

https://github.com/jalagrange/excel_test_app

2
jalagrange