在办公文档中查找单词

本文关键字:查找 单词 文档 | 更新日期: 2023-09-27 18:09:48

我正在编写一个程序,该程序将根据文件中的某些文本对文件进行分组。大多数文件可能是。doc或。docx。

我的程序应该能够将单词列表与文件中的单词进行比较。我是c#的新手,我只自己学习编程,整个"读取。doc文件"的事情超出了我的理解,所以任何帮助都会非常感激!

到目前为止,我的代码中与office有关的部分是:

代码
if (Path.GetExtension(listBox1.SelectedItem.ToString()) == ".doc" ||
    Path.GetExtension(listBox1.SelectedItem.ToString()) == ".docx")
{
    Microsoft.Office.Interop.Word.Document doc = 
        new Microsoft.Office.Interop.Word.Document(listBox1.SelectedItem.ToString());
    doc.Activate();
}
编辑:

如果问题不够清楚,我很抱歉。我的问题是

如果文档包含文本文件中包含的任何特定单词,我如何查找?我读了很多其他的问题,答案和教程,可能只有我一个人,但我完全不明白。

在办公文档中查找单词

下面是关于从。docx文件中读取文本的介绍:http://www.codeproject.com/Articles/20529/Using-DocxToText-to-Extract-Text-from-DOCX-Files

您可以将。doc文件转换为。docx文件,并对两者使用相同的过程。

你似乎正在使用微软的互操作类,所以你可以使用Outlook.Interop.Find

MSDN描述和HOW TO

如果文档中包含单词

, execute方法将返回true
        StringBuilder sb = new StringBuilder();
        Word.Range rng = rodape.Range;
        Word.Find find = rng.Find;
        find.ClearFormatting();
        find.Replacement.ClearFormatting();//Only required if you will replace the text
        if (find.Execute("textToBeFound", false))
        {
            //The document contains the word
        }

另一个例子,来自microsoft:

private void SelectionFind() { 
object findText = "find me";
Application.Selection.Find.ClearFormatting();
if (Application.Selection.Find.Execute(ref findText,
    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)) 
{ 
    MessageBox.Show("Text found.");
} 
else
{ 
    MessageBox.Show("The text could not be located.");
} }