IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ruby on Rails Discussion :

Vue au format Excel ou HTML


Sujet :

Ruby on Rails

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Vue au format Excel ou HTML
    Pour ceux avec qui j'ai déjà échangés quelques post, je continue mon apprentissage de ROR avec enthousiasme... Bref voilà mon nouveau problème

    J'aimerais afficher le résultat d'une reqête (une liste de contacts) effectuée depuis un contrôleur sous différents formats (Excel et HTML). J'ai donc défini deux vues contact_html.rhtml et contact_excel.rhtml qui me construisent respetivement les résultats aux formats HTML et EXCEL.

    Donc dans mon contrôleur j'ai envie de faire quelque chose comme ça ;

    if format
    render :action=>"contact_html"
    else
    render :action=>"contact_excel", :type=>"application/vnd.ms-excel"
    end

    Mais voilà ça ne fonctionne pas, j'ai l'impression que render ne supporte pas le paramètre type et pourtant j'ai besoin de préciser le type mime. Si vous avez une idée je sèche !

    Julien

  2. #2
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    essaie ça (genre avant ton render):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    headers["Content-Type"] = "application/vnd.ms-excel;"
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 652
    Points
    652
    Par défaut
    Et genre aussi, il te faut un serveur Microsoft pour disposer des dll Excel.

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 657
    Points : 910
    Points
    910
    Par défaut
    Salut,

    En fouillant un peu dans la doc, on trouve dans le code de render :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    729:         if content_type = options[:content_type]
    730:           response.content_type = content_type.to_s
    731:         end
    Je te conseillerais donc d'essayer avec :content_type au lieu de :type

    Sinon depuis Rails 1.2, tu aurais pu aussi rajouter un type mime pour ton fichier excel, ce qui donnerais quelque chose du genre (pas bien testé mais c'est l'idée )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    config/environment.rb :
    Mime::Type.register "application/vnd.ms-excel", :xls
     
     
    action :
    respond_to do |format|
      format.html # contact.rhtml (vue par défaut)
      format.xls { render :action => "contact_excel" }
    end
    cf. http://weblog.rubyonrails.com/2006/1...tom-mime-types



    La solution de Titoumimi marche aussi je pense, je voulais juste te proposer une solution qui exploite un peu plus Rails.

    Citation Envoyé par Zfred
    Et genre aussi, il te faut un serveur Microsoft pour disposer des dll Excel.
    Toute la documentation Ruby on Rails : gotapi.com/rubyrails
    Mes articles :
    > HAML : langage de template pour Ruby on Rails

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 172
    Points : 219
    Points
    219
    Par défaut
    Bonjour,

    Je suis curieux de savoir comment écrire un fichier excel en rhtml avec erb... S'il existe une solution je suis preneur.

    De mon côté n'ayant pas trouvé comment faire, j'utilise le format CSV qui, s'il est écrit avec des ";" et non des "," s'ouvre directement sous excel. Evidemment, on perd les possibilités de mise en forme, entre autre.

    Voici la méthode de mon contrôleur, simplifiée pour l'occasion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def export_excel
        export=StringIO.new
        CSV::Writer.generate(export, ';') do |csv|
          csv << [a,b,c]
        end
        export.rewind
        send_data(export.read,
                  :type => 'text/csv; charset=windows-1252; header=present',
                  :filename => 'export.csv')
    end

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 16/08/2006, 11h11
  2. Envoi état au format Excel
    Par Pierren dans le forum Access
    Réponses: 2
    Dernier message: 28/06/2006, 16h27
  3. export au format excel d'un tableau
    Par zola dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 11/05/2006, 11h25
  4. Tableau Croisé Dynamique Excel en HTML
    Par Promesses dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 11/12/2005, 15h35
  5. Convertir une date au format excel en datetime SQL server
    Par ALLB dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 20/07/2004, 11h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo