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
"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
nous utilisons ROO qui prend en charge Open Office, Excel, Google, Excel.xlsx
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
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: