Domanda

Devo unire un sacco di file docx a livello di codice. Immagina che siano numerati da 1 a 10. Ho essenzialmente bisogno di un file final.docx che contenga tutti i 10 documenti. Se posso aggiungere il secondo al primo in qualche modo, allora posso ripeterlo per il terzo, poi il quarto, ecc.

Nota che NON ho bisogno di ricostruire un sommario o qualcosa del genere. Ogni docx contiene solo alcuni contenuti statici. Tuttavia, ci sono piè di pagina su questi documenti e devono essere preservati.

Preferibilmente una risposta in C # o MSBuild.

Ringraziandovi.

È stato utile?

Soluzione

Avevo fatto un'applicazione in C # per unire i file RTF in un unico documento, spero che dovrebbe funzionare anche per i file DOC e 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);  

Spero che questo aiuti!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top