删除MS Word文档中的特定行

时间:2016-07-14 11:54:01

标签: c# .net winforms ms-word office-interop

我一直在尝试从单词doc中删除特定行。逻辑是,如果我在文档中找到一个特定的单词,我需要删除包含该单词的特定行。到目前为止我只写了找到这个词的逻辑。但是,跟踪行号广告删除该行,我无法做到。我搜索了很多网站,但是,我现在非常困惑。你能帮我解决一下吗?

下面是我的代码: -

 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);            
        }

如果您需要任何其他信息,请与我们联系。

注意:搜索关键字由文本框提供,上述功能从按钮调用。

2 个答案:

答案 0 :(得分:2)

这样的东西
var range = doc.Content;
if (range.Find.Execute(txt))
{
    range.Expand(WdUnits.wdLine); // or change to .wdSentence or .wdParagraph
    range.Delete();
}

答案 1 :(得分:1)

您可以迭代文档的段落,然后在特定段落中找到该词后,您可以删除该段落。

<form>