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

Windows Forms Discussion :

Exporter un tableau d'un winform dans un fichier Excel.


Sujet :

Windows Forms

  1. #1
    Courgette17
    Invité(e)
    Par défaut Exporter un tableau d'un winform dans un fichier Excel.
    Bonjour,

    J'ai précédemment créé en ASP.NET un bouton qui permettait d'exporter un tableau ASP dans un fichier xls et cela fonctionnait bien.

    Maintenant j'aimerai le faire de la même manière dans un winform (c'est à dire sans utiliser l'automation que j'abhorre).

    Voici mon précédent code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
     
    protected void EExcel_Click(object sender, System.EventArgs e)
    {
    // Set the content type to Excel.
    Response.ContentType = "application/vnd.ms-excel";
    // Remove the charset from the Content-Type header.
    Response.Charset = "";
    // Turn off the view state.
    this.EnableViewState = false;
    remplirtableauventilation();
     
    System.IO.StringWriter tw = new System.IO.StringWriter();
    System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
     
     // Get the HTML for the control.
    tblventilation.RenderControl(hw);
     
    Response.Write("<?xml version=1.0 encoding=utf-8?><html><body>");
    // Write the HTML back to the browser.
    Response.Write(tw.ToString);
    Response.Write("</body></html>");
    // End the response.
    Response.End();
    }
    remplirtableauventilation() étant la méthode qui remplissait mon tableau et tblventilation le nom du tableau.

    Comment puis je changer le code?

    Quel tableau puis je remplir facilement dans un winform et utiliser pour un export dans un tableau Excel?

    Merci d'avance


    MadMarc52

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 311
    Points : 337
    Points
    337
    Par défaut
    Un dataset non?

  3. #3
    Courgette17
    Invité(e)
    Par défaut
    Dans le cas ou j'utiliserai un Dataset, peux tu s'il te plait me dire comment l'utiliser pour l'export dans une feuille excel?

  4. #4
    Courgette17
    Invité(e)
    Par défaut
    Quelqu'un a une idée avec cette solution (dataset) ou une autre?



    Merci d'avance

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 311
    Points : 337
    Points
    337
    Par défaut
    J'avais mal compris ta question...

    Pourquoi tu ne peux pas réutiliser ton code?

    Qu'est-ce qui diffère entre la version ASP et celle-ci?

  6. #6
    Courgette17
    Invité(e)
    Par défaut
    Bah mon code est fait pour un webform et j'aimerai le mettre dans un winform. Ce qui n'est pas ma la même chose d'un point de vue programmation déjà.
    Mais je ne connais pas les équivalences entre les fonctions de chacun.

  7. #7
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 77
    Points : 92
    Points
    92
    Par défaut
    Citation Envoyé par MadMarc52 Voir le message
    (c'est à dire sans utiliser l'automation que j'abhorre).
    Pourquoi ne pas utiliser l'automation? C'est justement son but (manipulation de fichier Excel), et ça évite les problèmes que tu rencontrerais peut-être avec d'autres solutions (formatage de fichier texte...).
    Sinon, pour avoir des données organisées en tableau, le copier-coller d'un DataGrid est efficace, mais tu n'auras pas de fonctionnalités avancées.

  8. #8
    Courgette17
    Invité(e)
    Par défaut
    Merci pour ta réponse.

    1) Parce que la dernière fois que j'ai utilisé l'automation Excel , je me suis retrouvé avec un putain de processus Excel qui se lançait à chaque fois que je lançais la fonction. Et cette fonction je la lançais plusieurs fois donc je remplissais le gestionnaire des taches de processus Excel. J'ai essayé absolument TOUTES les solutions que j'ai vu sur le net, j'ai "harcelé" plusieurs forums pour trouver une solution pour enlever le processus une fois que la fonction se terminait (normal je bossais pour une très grande entreprise).

    2) Parce que je ne peux pas récupérer un tableau dans une interface graphique en c# winform et la mettre dans une feuille excel ensuite. L'automation ne sert qu'a donner des ordres à Excel et je ne veux pas prévoir toutes les générations possibles d'un tableau pour ensuite le convertir en feuille excel.

    Donc voila, ça existe pas de convertir quelque chose en excel simplement?

  9. #9
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 77
    Points : 92
    Points
    92
    Par défaut
    L'automation Excel, utilisée "proprement", ne laisse pas de processus Excel trainer. En fermant correctement les feuilles, classeur et application, normalement, le processus est supprimé.
    Si le problème persiste, tu as ici : http://skalp.developpez.com/tutoriel...tomationexcel/ une solution pour killer le processus.

    Maintenant, il est vrai que copier un tableau générique dans un fichier Excel peut être un peu lourd, mais ça reste le plus adapté.
    Sinon, il y a des possibilités dans Excel pour ouvrir des fichiers écrits en texte, en interpretant des caractères comme séparateurs de ligne, de colonnes... Cela dit, le résultat est plus aléatoire et moins propre que la construction brut du fichier.

    Que veux-tu faire exactement? Copier un tableau (style dataGrid) rempli par un utilisateur dans ton formulaire?

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 311
    Points : 337
    Points
    337
    Par défaut
    Si vraiment tu es allergique à l'automation, il existe une librairie qui crée des XML compatibles avec Excel, ce qui permet de créer des fichiers "Excel" sans que ce dernier soit installé sur le poste...

  11. #11
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Points : 2 927
    Points
    2 927
    Par défaut
    Citation Envoyé par MadMarc52 Voir le message
    Quelqu'un a une idée avec cette solution (dataset) ou une autre?
    As-tu essayé la FAQ Comment transférer des données sous Excel rapidement ?

    Citation Envoyé par MadMarc52 Voir le message
    1) Parce que la dernière fois que j'ai utilisé l'automation Excel , je me suis retrouvé avec un putain de processus Excel qui se lançait à chaque fois que je lançais la fonction. Et cette fonction je la lançais plusieurs fois donc je remplissais le gestionnaire des taches de processus Excel. J'ai essayé absolument TOUTES les solutions que j'ai vu sur le net, j'ai "harcelé" plusieurs forums pour trouver une solution pour enlever le processus une fois que la fonction se terminait (normal je bossais pour une très grande entreprise).
    Oui, je me souviens de notre discussion. Ton problème à l'époque venait du fait que tu voulais tuer un processus sur une machine distante. Cela relevait donc d'un problème de droits entre machines distantes et non de l'automation Excel.

Discussions similaires

  1. [1.x] Export des données d'un formulaire dans un fichier excel
    Par farhaenis dans le forum Symfony
    Réponses: 4
    Dernier message: 01/08/2011, 11h55
  2. Réponses: 6
    Dernier message: 01/04/2009, 14h28
  3. [CSV] Tableau php avec mysql dans un fichier excel
    Par saraza dans le forum Langage
    Réponses: 3
    Dernier message: 06/01/2009, 18h33
  4. export d'un tableau byte dans un fichier excel
    Par JauB dans le forum ASP.NET
    Réponses: 4
    Dernier message: 22/04/2008, 12h36
  5. Réponses: 8
    Dernier message: 23/05/2006, 12h13

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