2013-01-16 70 views
0

我有一個動態生成的docx文件。OpenXML編輯docx

需要嚴格地將文本寫入頁尾。

隨着Microsoft.Interop我的文字之前插入段落:

int kk = objDoc.ComputeStatistics(WdStatistic.wdStatisticPages, ref wMissing); 
while (objDoc.ComputeStatistics(WdStatistic.wdStatisticPages, ref wMissing) != kk + 1) 
       { 
        objWord.Selection.TypeParagraph(); 

       } 
       objWord.Selection.TypeBackspace(); 

但我不能使用相同的代碼與開放的XML,因爲pages.count隻字計算。 使用互操作不可能,因爲它太slowwwww。

回答

0

在Open XML中有兩種選擇。

  1. 在文檔的末尾創建Microsoft Office開發人員選項卡內容佔位,現在你可以通過編程訪問該內容佔位符,它可以將任何文本在它。

  2. 您可以將文本直接附加到您的文字文檔,並將其插入文本的末尾。在這種方法中,你得先寫所有的東西到您的文檔,一旦你做的比您可以附加您的文檔通過以下方式

//

public void WriteTextToWordDocument() 
{  
    using(WordprocessingDocument doc = WordprocessingDocument.Open(documentPath, true)) 
    { 
     MainDocumentPart mainPart = doc.MainDocumentPart; 
     Body body = mainPart.Document.Body; 
     Paragraph paragraph = new Paragraph(); 
     Run run = new Run(); 
     Text myText = new Text("Append this text at the end of the word document"); 
     run.Append(myText); 
     paragraph.Append(run); 
     body.Append(paragraph); 

     // dont forget to save and close your document as in the following two lines 
     mainPart.Document.Save(); 
     doc.Close(); 
    } 
} 

我沒有測試上面的代碼,但希望它會給你一個處理OpenXML中的word文檔的想法。 Regards,

+0

你不明白我。我有任何內容的內容控制,並需要將其移動到頁的末尾)我不能移動到最後編輯 – user1982834

+0

可以請你給我多一點關於你的情況說明,因爲我很困惑,仍然不清楚關於它? –

相關問題