2016-07-14 7 views
0

docという語から特定の行を削除しようとしました。論理は、文書内の特定の単語を見つけたら、その単語を含むその特定の行を削除する必要があります。私は言葉を見つけるための論理を書いただけです。しかし、行番号を追跡して広告を削除すると、私はできません。私は複数のウェブサイトをたくさん検索しましたが、今は非常に困惑しています。これで私を助けてくれますか?MS Word文書内の特定の行を削除する

は、以下の私のコードです: -

void searchText(string txt) 
     { 
      Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application(); 
      Microsoft.Office.Interop.Word.Document doc = app.Documents.Open("C:\\Users\\SS5014874\\Desktop\\testdoc1.docx"); 
      object missing = System.Reflection.Missing.Value; 
      doc.Content.Find.ClearFormatting(); 
      object keyword = txt.ToString(); 
      if (doc.Content.Find.Execute(ref keyword, 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)) 
      { 
       //Need the logic to delete the line here 
      } 
      else 
      { 
       MessageBox.Show("Not found"); 
      } 
      doc.Close(ref missing, ref missing, ref missing); 
      app.Quit(ref missing, ref missing, ref missing);    
     } 

あなたが他の情報が必要な場合は私に知らせてください。

注:検索キーワードはテキストボックスで与えられ、上記の機能はボタンから呼び出されます。

+0

チェックのように、これは、しかし、この解決策はあるの応答をhttp://www.codeproject.com/Questions/519686/deleteplusapluslineplusinpluswordplusfromplusVB-ne – Dandy

+0

@ Dandy-感謝を助けている場合VB用、C用ではありません# – Sourav

+0

http://converter.telerik.com/あなたのためにそれを行います – Dandy

答えて

2

何か

var range = doc.Content; 
if (range.Find.Execute(txt)) 
{ 
    range.Expand(WdUnits.wdLine); // or change to .wdSentence or .wdParagraph 
    range.Delete(); 
} 
+0

それは働いた。唯一の変更は.wdLineの代わりに、私は.wdParagraphを使用しました。どうもありがとうございました。 – Sourav

1

文書の段落を反復することができます。その後、特定の段落内の単語を見つけたら段落を削除できます。

newDocument = wordApplication.Documents.Open(fileDoc, 
                confirmConversions: false, 
                addToRecentFiles: false, 
                readOnly: true, 
                passwordDocument: Password) 

var docRange = newDocument .Content; 

foreach(var para in docRange.Paragraphs) 
{ 
    if(para.ToString().Contains("word")) 
    { 
    docRange.Delete(para); 
    } 
} 
関連する問題