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 des données dans un fichier .doc (ou docx)


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Points : 128
    Points
    128
    Par défaut Exporter des données dans un fichier .doc (ou docx)
    Bonjour à tous!

    Voila mon problème.

    J'ai une form qui contient plusieurs informations (textes principalement avec une image).

    Ce que je souhaite faire, c'est lorsque l'utilisateur clique sur un bouton, un fichier .doc ou .docx se créé avec les différentes informations noté à l'intérieur.

    Pour cela j'utilise les références suivantes :
    VBIDE
    Microsoft.Office.Interop.Word
    Microsoft.Office.Core


    Voici maintenant le code trouvé dans un tuto se servant des références ci dessus :
    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
     
    /* Lancement du processus Word grâce à l'instanciation de la classe "ApplicationClass" */
                Word.ApplicationClass wa = new Word.ApplicationClass();
     
                /* Montrer la fenêtre du processus */
                wa.Visible = true;
     
                /* Création de la feuille */
                Word.DocumentClass wd = new Word.DocumentClass();
     
                /* Activation de la feuille */
                wd.Activate();
     
                /* Insertion de texte dans la feuille */
                wd.Content.InsertAfter("Salut");
    Dans mon cas, cela me sort l'erreur suivante :
    Le type ou le nom d'espace de noms 'Word' est introuvable (une directive using ou une référence d'assembly est-elle manquante*?)
    En somme, si je comprends bien, il ne connait pas "Word". Visual me montre "Words", et avec ce dernier, je n'y arrive toujours pas.

    Avez vous une idée pour me débloquer ?

    Je vous remercie

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Points : 128
    Points
    128
    Par défaut
    La honte la honte la honte, je recherche sur le net une solution à mon problème pour voir qu'en fait il fallait que j'aille en page 2 pour voir une personne avec le même problème....

    Désolé.

    EDIT :


    J'ai bien avancé avec votre tuto, super sympa bien et surtout commenté...

    Voici ou j'en suis :

    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
    41
    42
    43
    44
    45
     
    // Connexion à Word
                Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();
                word.Visible = false;
                object missing = System.Reflection.Missing.Value;
     
                // Attribuer le nom du fichier .doc
                object nom_fichier = @"" + textBox1.Text + ".doc";
     
                Microsoft.Office.Interop.Word.Document nouveau_doc;
     
                // Tester s'il s'agit d'un nouveau document ou d'un document existant.
                if (System.IO.File.Exists((string)nom_fichier))
                {
                    // ouvrir le document existant
                    nouveau_doc = word.Documents.Open(ref nom_fichier, 
                                ref missing, ref missing, ref missing,
                                ref missing, ref missing, ref missing,
                                ref missing, ref missing, ref missing,
                                ref missing, ref missing, ref missing,
                                ref missing, ref missing, ref missing);
                }
                else
                {
                    // Créer le document
                    nouveau_doc = word.Documents.Add (ref missing, ref missing, ref missing, ref missing);
                }
     
     
     
     
     
     
     
                // Sauver le document
                nouveau_doc.SaveAs(ref nom_fichier, ref missing, ref missing, ref missing, ref missing,
                            ref missing, ref missing, ref missing, ref missing, ref missing,
                            ref missing, ref missing, ref missing, ref missing, ref missing,
                            ref missing);
     
                // Fermer le document
                nouveau_doc.Close(ref missing, ref missing, ref missing);
     
                // Fermeture de word
                word.Quit(ref missing, ref missing, ref missing);

    J'ai du mal à saisir le fait qu'il faille remplir le .rtf qui va remplir le .doc...
    Ce que je voudrais c'est remplir le .doc avec le contenu de mes textbox.

    Si vous avez une idée

    Cordialement



    (lien du tuto : http://jab.developpez.com/tutoriels/dotnet/word/ )

  3. #3
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    http://jab.developpez.com/tutoriels/dotnet/word/#L5

    tout est là. y a besoin de rien de plus que ca, donc je ne comprend pas ta question ou ton histoire de textbox
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Points : 128
    Points
    128
    Par défaut
    voici mon code et l'erreur associé :
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
     
    // Connexion à Word
                Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();
                word.Visible = false;
                object missing = System.Reflection.Missing.Value;
     
                // Attribuer le nom du fichier .doc
                object nom_fichier = @"" + textBox1.Text + ".doc";
     
                Microsoft.Office.Interop.Word.Document nouveau_doc;
     
                // Tester s'il s'agit d'un nouveau document ou d'un document existant.
                if (System.IO.File.Exists((string)nom_fichier))
                {
                    // ouvrir le document existant
                    nouveau_doc = word.Documents.Open(ref nom_fichier, 
                                ref missing, ref missing, ref missing,
                                ref missing, ref missing, ref missing,
                                ref missing, ref missing, ref missing,
                                ref missing, ref missing, ref missing,
                                ref missing, ref missing, ref missing);
                }
                else
                {
                    // Créer le document
                    nouveau_doc = word.Documents.Add (ref missing, ref missing, ref missing, ref missing);
                }
     
     
     
     
                //définition du texte et mise en place dans le clipboard
                string monContenu = "Le texte que je transfère";
                Clipboard.SetDataObject(monContenu, false);
     
                //on rappatrie dans le rtf le contenu de field
                object field = "TexteRtf";
                nouveau_doc.Bookmarks.get_Item(ref field).Range.Paste();
     
     
     
     
     
     
                // Sauver le document
                nouveau_doc.SaveAs(ref nom_fichier, ref missing, ref missing, ref missing, ref missing,
                            ref missing, ref missing, ref missing, ref missing, ref missing,
                            ref missing, ref missing, ref missing, ref missing, ref missing,
                            ref missing);
     
                // Fermer le document
                nouveau_doc.Close(ref missing, ref missing, ref missing);
     
                // Fermeture de word
                word.Quit(ref missing, ref missing, ref missing);
    Vocii mon erreur :
    "Le membre de la collection requis n'existe pas."
    Ligne de code qui créé cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nouveau_doc.Bookmarks.get_Item(ref field).Range.Paste();

  5. #5
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    bah ca me semble évident... tu cherches à récuperer le champ qui se nomme TexteRTF, mais l'as-tu créé ce champ?

    si tu ne l'as pas fait, il ne peut pas le trouver et donc il te pète une erreur.


    tape "publipostage" sur google, tu comprendras comment ca marche le remplissage de documents
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Points : 128
    Points
    128
    Par défaut
    Ca peut être évident pour quelqu'un qui a le savoir.

    Pour une personne qui ne comprend pas à 100% le tuto, ca l'est moins.
    Bref, tu m'as débloqué, merci c'était bien cela

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

Discussions similaires

  1. [PHP 4] Exporter des données dans un fichier Excel
    Par krolis dans le forum Langage
    Réponses: 2
    Dernier message: 15/04/2011, 01h07
  2. [SGBDR] [MySQL] Exporter des données dans un fichier XML
    Par fedora8 dans le forum XQUERY/SGBD
    Réponses: 1
    Dernier message: 24/01/2011, 15h31
  3. Export des données dans un fichier Excel
    Par jawed84 dans le forum Documents
    Réponses: 8
    Dernier message: 02/01/2008, 15h27
  4. Exportation des données dans un fichier Excel
    Par Koukouknizou dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 14/07/2007, 14h22
  5. Réponses: 1
    Dernier message: 05/09/2006, 17h56

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