سؤال

أحتاج إلى دمج مجموعة كاملة من ملفات DOCX برمجيًا. تخيل أنها مرقمة من 1 إلى 10. أحتاج إلى ملف نهائي. 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);  

أتمنى أن يساعدك هذا!

نصائح أخرى

استخدم أدوات الطاقة Open XML ، الموصوفة في http://blogs.msdn.com/b/ericwhite/archive/2009/02/05/move-insert-delete-peragraphs-

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top