2010-05-12 16 views
29

Je crée une application pour petits rails à usage personnel et je souhaiterais pouvoir télécharger des fichiers Excel pour les valider et les ajouter ultérieurement à la base de données. J'ai déjà travaillé avec des fichiers csv, mais cela est devenu impraticable.Importer une application Excel dans Rails

Est-ce que quelqu'un sait d'un tutoriel pour utiliser le joyau roo ou feuille de calcul pour télécharger le fichier, afficher le contenu à l'utilisateur et ensuite ajouter à la base de données (après validation)? Je sais que c'est assez spécifique, mais je veux travailler à travers cette étape par étape.

Tout ce que j'ai à ce jour 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 sais pas comment accéder à ce fichier téléchargé dans le contrôleur.

Toutes les suggestions/l'aide seraient les bienvenues. Merci

+0

Par curiosité, pourquoi était la version du fichier csv pas pratique? Cela a-t-il obligé l'utilisateur final à faire beaucoup pour télécharger l'étudiant? Je crains que mes utilisateurs puissent être intimidés en ayant à se cacher à csv. –

Répondre

27

« La feuille de calcul bibliothèque est conçu pour lire et écrire des documents de feuille de calcul. De la version 0.6.0, des feuilles de calcul compatibles Microsoft ne Excel sont pris en charge. Feuille de calcul est un combinaison/réécriture complète de la bibliothèque Spreadsheet :: Excel par Daniel J. Berger et de la bibliothèque ParseExcel par Hannes Wyss, une feuille de calcul peut lire, écrire et modifier des feuilles de calcul.

EDIT
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 fichiers comme paperclip et il traitera les bits et les boulons.
2. Utilisez l'objet IO params[:dump][:excel_file] selon: http://guides.rails.info/form_helpers.html#what-gets-uploaded

15

nous utilisons roo qui soutiennent Open Office, Excel, Google, Excel.xlsx

+0

génial! thxnx beaucoup – fl00r

2

Hey j'utiliser la pierre précieuse feuille de calcul et a écrit une application simple à comprendre comment Tout va bien ensemble. Il fonctionne actuellement sur Rails 3.1 et Carrierwave, espérons que cette aide:

https://github.com/jalagrange/excel_test_app

+0

L'application n'est pas en cours d'exécution localement. Savez-vous pourquoi? – CodeBiker