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

Services Web Discussion :

C#: Ouvrir un fichier Excel, ajouter des donneés, et enregistrer


Sujet :

Services Web

  1. #1
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 87
    Points : 53
    Points
    53
    Par défaut C#: Ouvrir un fichier Excel, ajouter des donneés, et enregistrer
    Bonjour les amis,

    Je veux simplement ouvrir un fichier Excel via C#, y ajouter des données, puis fermer en enregistrant (sans écraser les précédantes donnée).

    voici ma tentative:
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
            Microsoft.Office.Interop.Excel.Application appli;
            Microsoft.Office.Interop.Excel._Workbook classeur;
            Microsoft.Office.Interop.Excel._Worksheet feuille;
            object M = System.Reflection.Missing.Value;
            object FileName = "c:\\MonFichierExcel.xls";
     
            private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                    appli = new Microsoft.Office.Interop.Excel.Application();
                    appli.Visible = false;
     
                    //---------- création du classeur ---------
                    classeur = (Microsoft.Office.Interop.Excel._Workbook)(appli.Workbooks.Open("c:\\MonFichierExcel.xls", M, M, M, M, M, M, M, M, M, M, M, M, M, M));
                    //------ activer la feuille ----------
                    feuille = (Microsoft.Office.Interop.Excel._Worksheet)classeur.ActiveSheet;
     
                    //Remplir les en-têtes
                    feuille.Name = "Entete Quitance";
                    feuille.Cells[1, 1] = "Nom";
                    feuille.Cells[1, 2] = "Prénom";
                    feuille.Cells[1, 3] = "Age";
     
     
     
                    //----- Auto-Enregistrement ---------------
                    classeur.Close(true, FileName, M);
                }
                catch (Exception ex) { MessageBox.Show("erruer est: " + ex.Message); }
                finally
                {
                    //----- Quitter ------
                    feuille = null;
                    classeur = null;
                    appli.Quit();
                    appli = null;
                }
            }
    Avant d'éxecuter ce code, j'ai mis en place le fichier Excel à ouvrir (pour que ça marche).
    L'éxecution de ce code me donne l'affichage d'un messageBox qui contient:

    Un fichier nommé 'c:\MonFichierExcel.xls' existe déjà à cet emplacement.
    Voulez-vous le remplacer ?

    Mais moi, je veux que le programme enregistre automatiquement sans me demander de le remplacer.
    J'ai tenté autre façon, j'ai remplaçé classeur.Close(true, FileName, M); par appli.Save(FileName); mais ça donne la même chose (même messageBox).

    s'il vous plaît, si vous avez n'importe quelle suggéstion à ce propos, n'hésitez surtout pas à me la communiquer, j'en ai vraiment besoin, et Merci d'avance.

    _______________________________________________
    Rien n'est impossible, il suffit de savoir comment !

  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
    Points : 2 927
    Points
    2 927
    Par défaut
    Citation Envoyé par soufian1364 Voir le message
    Un fichier nommé 'c:\MonFichierExcel.xls' existe déjà à cet emplacement.
    Voulez-vous le remplacer ?

    Mais moi, je veux que le programme enregistre automatiquement sans me demander de le remplacer.
    J'ai tenté autre façon, j'ai remplaçé classeur.Close(true, FileName, M); par appli.Save(FileName); mais ça donne la même chose (même messageBox).
    Dans les paramètres supplémentaires de ces méthodes, il est possible d'indiquer si le fichier doit être écrasé s'il existe déjà.

  3. #3
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 87
    Points : 53
    Points
    53
    Par défaut
    Re,

    Merci Skalp d'abords pour la remarque, je vais encore chercher la dessus, mais s'il vous plait, si tu vous connaissez exactement le paramètre qu'il faut changer et quoi y mettre comme valeur, veuillez me l'écrire.

    et merci beacoup

    ________________________________________
    Rien n'est impossible, il suffit de savoir comment !

  4. #4
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 87
    Points : 53
    Points
    53
    Par défaut
    Re,

    Problème Résolu, Skalp, vous aviez raison de dire que c'est juste un paramètre qu'il faut changer:
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    classeur.Close(true, FileName, M); // redonner le nom de File à enregister
    il fallait mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    classeur.Close(true, M, M); // M représenter "Missing Value"
    ça veut dire: enregister en gardant le même nom que le fichier déja ouvert.

    Merci Shalp
    Merci Developpez.com
    _______________________________________
    Rien n'est impossible, il suffit de savoir comment !

  5. #5
    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 soufian1364 Voir le message
    Merci Skalp d'abords pour la remarque, je vais encore chercher la dessus, mais s'il vous plait, si tu vous connaissez exactement le paramètre qu'il faut changer et quoi y mettre comme valeur, veuillez me l'écrire.
    Je ne connais pas par coeur tous les paramètres de toutes les méthodes et au moment où je t'ai répondu, je n'avais pas les moyens de vérifier, mais je savais où se trouvait la réponse (j'aurais pu te dire tout ça, pour que tu comprennes mieux ma réponse, ceci dit).
    Citation Envoyé par soufian1364 Voir le message
    Problème Résolu, Skalp, vous aviez raison de dire que c'est juste un paramètre qu'il faut changer
    Voilà, ça nous a fait gagner du temps à tous les deux

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

Discussions similaires

  1. Créer fichier Excel à partir des données d'un autre
    Par Pimon07 dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 02/03/2015, 16h43
  2. Réponses: 8
    Dernier message: 08/07/2014, 13h41
  3. [AC-2003] Exporter plusieurs fichiers excel à partir des données d'une requête
    Par Daphnoxbow dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 06/10/2009, 11h41
  4. Réponses: 1
    Dernier message: 08/10/2008, 15h30
  5. Macro pour ouvrir un fichier excel avec des ','
    Par oliver75 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 30/05/2007, 18h08

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