我需要以编程方式合并一大堆 docx 文件。想象一下它们的编号为 1 到 10。我本质上需要一个包含所有 10 个文档的 Final.docx 文件。如果我可以以某种方式将第二个附加到第一个,那么我可以重复第三个,然后第四个,依此类推。

请注意,我不需要重建目录或类似的内容。每个 docx 中都只有一些静态内容。然而,这些文档上有页脚,需要保留它们。

最好是 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