2009-01-22 133 views
2

我需要以编程方式合并一大堆docx文件。想象一下,它们编号为1到10.我基本上需要一个包含所有10个文档的final.docx文件。 如果我可以将第二个追加到第一个,那么我可以重复第三个,然后第四个等。将2个DOCX文件合并为1?

请注意,我不需要重建目录或类似的东西。每个docx只包含一些静态内容。但是这些文件上有脚注,需要保留。

最好是在C#或MSBuild中的答案。

感谢你。

回答

2

我在C#中创建了一个应用程序,将RTF文件合并到一个文档中,Iam希望它能够适用于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); 

希望这会有所帮助!