2009-12-03 148 views
4

我有一些代碼來查找和替換word文檔中的字段與來自數據集的值。如何以編程方式使用c#從Word文檔中刪除一行?

Word.Document oWordDoc = new Word.Document(); 
foreach (Word.Field mergeField in oWordDoc.Fields) 
{ 
    mergeField.Select(); 
    oWord.Selection.TypeText(stringValueFromDataSet); 
} 

在某些情況下stringValueFromDataSet是空的,除了將一無所有,我想實際刪除當前行。

任何想法我可以做到這一點?

回答

4

顯然,答案工作在你的情況。但是在一般情況下(其中 整條生產線不能使用退格鍵被刪除)以下的,可以用:

private static object missing = System.Reflection.Missing.Value; 

    /// <summary> 
    /// Deletes the line in which there is a selection. 
    /// </summary> 
    /// <param name="application">Instance of Application object.</param> 
    private void DeleteCurrentSelectionLine(_Application application) 
    { 
     object wdLine = WdUnits.wdLine; 
     object wdCharacter = WdUnits.wdCharacter; 
     object wdExtend = WdMovementType.wdExtend; 
     object count = 1; 

     Selection selection = application.Selection; 
     selection.HomeKey(ref wdLine, ref missing); 
     selection.MoveDown(ref wdLine, ref count, ref wdExtend); 
     selection.Delete(ref wdCharacter, ref missing); 
    } 
+0

尼斯,這是一個更強大的答案。歡呼馬克。 – nailitdown 2009-12-04 03:23:39

5

確定這是最後可笑的容易。

oWord.Selection.TypeBackspace();//remove the field
oWord.Selection.TypeBackspace();//remove the line

相關問題