Partage
  • Partager sur Facebook
  • Partager sur Twitter

Accès au Header d'un Word avec OpenXML

Sujet résolu
    22 octobre 2018 à 10:53:56

    Bonjour à tous,

    Dans le cadre de mon travail, je dois modifier l'entête d'environ 1000 fichiers Word. La manipulation n'est pas compliqué puisqu'il s'agit de rajouter "#A" à chaque référence dans l'entête de chacun de mes fichiers.

    Je travaille en C# avec OpenXML. Malgré les nombreuses docs sur internet, je n'arrive pas à récupérer le contenu du Header d'un fichier Word.

    Dans l'idéal pour le moment, j'aimerai afficher tout le contenu de mon header dans la console.

    Actuellement, j'ai le code suivant, mais il est possible qu'il ne réponde pas au besoin.

    static void Main(string[] args)
            {
                //Chemin vers le fichier word
                String filepath = @"MON_CHEMIN";
    
                using (WordprocessingDocument myDocX =
                    WordprocessingDocument.Open(filepath, true))
                {
                    DocumentFormat.OpenXml.Packaging.HeaderPart firstHeader =
                        myDocX.MainDocumentPart.HeaderParts.FirstOrDefault();
    
                    myDocX.MainDocumentPart.HeaderParts.FirstOrDefault();
    
                    if (firstHeader != null)
                    {
                        //Je veux afficher ici le contenu de mon header
                        Console.WriteLine(firstHeader.ToString());
                    }
                }
    
                //Pour éviter que la console se ferme...
                Console.ReadLine();
            }

    Merci par avance pour vos réponses.

    -
    Edité par Malecto 22 octobre 2018 à 10:55:10

    • Partager sur Facebook
    • Partager sur Twitter
    Un programme est un sort jeté sur un ordinateur, qui transforme tout texte saisi au clavier en message d’erreur.
      22 octobre 2018 à 12:04:10

      Avez-vous vérifié que ce que vous cherchez est bien à l'endroit où vous le cherchez, en dézippant le .docx par exemple.
      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        23 octobre 2018 à 8:38:44

        Bonjour,

        Oui, c'était bien au bon endroit. En testant plusieurs fois, j'ai trouvé la solution. Je n'affiche pas le contenu dans la console mais j'arrive à modifier mon entête comme je veux, ce qui était l'objectif final.

        Voici la solution :

        using DocumentFormat.OpenXml.Packaging;
        using DocumentFormat.OpenXml.Wordprocessing;
        
        namespace ModifEnteteDocX
        {
            class Program
            {
                static void Main(string[] args)
                {
        
                    //Chemin vers le fichier word
                    String filepath = @"MON_CHEMIN";
           
                    using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(filepath, true))
                    {
                        string docText = null;
        
                        DocumentFormat.OpenXml.Packaging.HeaderPart headerPart =
                            wordDoc.MainDocumentPart.HeaderParts.FirstOrDefault();
        
                        using (StreamReader sr = new StreamReader(headerPart.GetStream()))
                        {
                            docText = sr.ReadToEnd();
                        }
        
                        Regex regexText = new Regex("Chaine_a_transformer");
                        docText = regexText.Replace(docText, "Ce_qui_va_remplacer");
        
                        using (StreamWriter sw = new StreamWriter(headerPart.GetStream(FileMode.Create)))
                        {
                            sw.Write(docText);
                        }
                    }
                }
            }
        }





        • Partager sur Facebook
        • Partager sur Twitter
        Un programme est un sort jeté sur un ordinateur, qui transforme tout texte saisi au clavier en message d’erreur.

        Accès au Header d'un Word avec OpenXML

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown