Question

Je dois fusionner tout un tas de fichiers docx par programme. Imaginez qu'ils soient numérotés de 1 à 10. Il me faut essentiellement un fichier final.docx contenant les 10 documents qu'il contient. Si je peux ajouter le deuxième au premier, je peux le répéter pour le troisième, puis le quatrième, etc.

Notez que je n'ai PAS besoin de reconstruire une table des matières ou quoi que ce soit du genre. Chaque docx contient juste un contenu statique. Cependant, ces documents contiennent des pieds de page qui doivent être conservés.

De préférence, une réponse en C # ou MSBuild.

En vous remerciant.

Était-ce utile?

La solution

J'avais fait une application en C # pour fusionner des fichiers RTF dans un seul document. J'espère que cela fonctionnera également pour les fichiers DOC et DOCX.

        Word._Application wordApp;
        Word._Document wordDoc;
        object outputFile = outputFileName;
        object missing = System.Type.Missing;
        object vk_false = false;
        object defaultTemplate = defaultWordDocumentTemplate;
        object pageBreak = Word.WdBreakType.wdPageBreak;
        string[] filesToMerge = new string[pageCounter];
        filestoDelete = new string[pageCounter];

        for (int i = 0; i < pageCounter; i++)
        {
            filesToMerge[i] = @"C:\temp\temp" + i.ToString() + ".rtf";
            filestoDelete[i] = @"C:\temp\temp" + i.ToString() + ".rtf";                
        }
        try
        {
            wordDoc = wordApp.Documents.Add(ref missing, ref missing, ref missing, ref missing);
        }
        catch(Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        Word.Selection selection= wordApp.Selection;

        foreach (string file in filesToMerge)
        {
            selection.InsertFile(file,
                ref missing,
                ref missing,
                ref missing,
                ref missing);

            selection.InsertBreak(ref pageBreak);                                     
        }
        wordDoc.SaveAs(ref outputFile, 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);  

J'espère que ça aide!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top