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

C# Discussion :

[Débutant][WinForms]Exporter une DataTable dans un fichier Excel


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut [Débutant][WinForms]Exporter une DataTable dans un fichier Excel
    Bonjour,

    Je cherche tout simplement à placer le contenu d'une DataTable dans un fichier Excel mais je ne trouve pas trop comment faire.

    J'ai créé une méthode pour ouvrir et pour fermer un document Excel proprement, référencé Microsoft.Office.Interop, maintenant tout ce que je souhaite faire c'est exactement placer le contenu d'une DataTable dans un fichier Excel, ou encore mieux d'un DataGridView dans un fichier Excel.

    J'ai déjà cherché sur Google et sur ce forum et dans les blogs de ce site

    @++

  2. #2
    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
    Par défaut
    C'est dommage, tu as cherché du mauvais côté.

    Ce que tu souhaites faire est possible plus simplement qu'une automation (Microsoft.Office.Interop) : avec une connection ADO.NET de type OleDb (on considère le fichier Excel comme une base de données).

    Voici un bout de code que tu reconnaitras surement. Il te suffit de le compléter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    string filePath = @"C:\Classeur1.xls";
    string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=\"Excel 8.0\";";
    OleDbConnection connection = new OleDbConnection(connectionString);
    OleDbCommand command = new OleDbCommand(connection);
    //...

  3. #3
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Ok pour ta solution, c'est vrai que j'y ai passé pas mal de temps

    Je suis effectivement plus familier du code que tu me proposes (parallélisme avec un appel de procédure stockée), mais je ne vois pas comment écrire les données contenues dans la DataTable dans le fichier Excel.

    Dois-je considérer qu'une feuille de mon document Excel est une table, et si c'est le cas, de quelle façon est-ce que je peux la référencer ?

    Si j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    command.CommandType = CommandType.Text;
    command.CommandText = "INSERT INTO [table]"
    Par quoi est-ce que je dois remplacer [table] ?

    Merci de ton aide

    @++

  4. #4
    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
    Par défaut
    Citation Envoyé par elsuket Voir le message
    Par quoi est-ce que je dois remplacer [table] ?
    Par [NomDeLaFeuille$] (ne pas oublier le $ à la fin).

    Par contre, il faut que le fichier Excel contienne le nom des colonnes en première ligne de cette feuille. Sinon, ça va être plus compliqué pour insérer les enregistrements...

    Si ta DataTable est contenue dans un DataSet, il est possible de passer par un DataAdapter relié au fichier Excel, spécifier la commande insert, puis mettre à jour les données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myDataAdapter.Update(myDataSet);

  5. #5
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Je ne comprends vraiment pas pourquoi il est si compliqué d'exporter des données vers Excel. Bref ...

    Par contre, il faut que le fichier Excel contienne le nom des colonnes en première ligne de cette feuille. Sinon, ça va être plus compliqué pour insérer les enregistrements...

    Si ta DataTable est contenue dans un DataSet, il est possible de passer par un DataAdapter relié au fichier Excel, spécifier la commande insert, puis mettre à jour les données
    Là je suis complètement perdu ...
    Peux-tu me donner un exemple stp ?

    @++

  6. #6
    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
    Par défaut
    Citation Envoyé par elsuket Voir le message
    Je ne comprends vraiment pas pourquoi il est si compliqué d'exporter des données vers Excel. Bref ...
    C'est pas compliqué, il suffit de connaitre les particularités.
    Citation Envoyé par elsuket Voir le message
    Là je suis complètement perdu ...
    Peux-tu me donner un exemple stp ?
    Voir cet article : Les objets DataAdapter et Dataset dans ADO.NET

Discussions similaires

  1. Exporter une requete dans un fichier excel
    Par soleilgym64 dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/10/2009, 18h45
  2. Exporter une DataTable dans un fichier Excel déjà creer
    Par pools dans le forum Windows Forms
    Réponses: 13
    Dernier message: 09/06/2009, 09h12
  3. Réponses: 4
    Dernier message: 25/05/2007, 13h10
  4. Exporter une table dans un fichier excel
    Par david71 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 07/09/2005, 17h09
  5. exporter une BD dans un fichier XML
    Par newsafi dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 05/08/2005, 10h54

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