Вопрос

Мне нужно объединить целую кучу файлов docx программно. Представьте, что они пронумерованы от 1 до 10. Мне по сути нужен файл final.docx, который содержит все 10 документов. Если я могу как-то добавить второе к первому, то могу повторить это для третьего, затем четвертого и т. Д.

Обратите внимание, что мне НЕ нужно перестраивать оглавление или что-то подобное. Каждый документ содержит статический контент. Однако в этих документах есть нижние колонтитулы, и их необходимо сохранить.

Желательно ответ на C # или MSBuild.

Спасибо.

Это было полезно?

Решение

Я подал заявку в C # на объединение файлов RTF в один документ, надеюсь, он будет работать и для файлов DOC и 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);  

Надеюсь, это поможет!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top