在办公室word文档中查找单词

时间:2013-04-17 20:54:33

标签: c# ms-word find docx doc

我正在开发一个程序,根据文件中的某些文本将文件分类到组。大多数文件可能是.doc或.docx。

我的程序应该能够将单词列表与文件中的单词进行比较。 我是C#的新手,我只是自己学习编程,整个“读取.doc文件”的东西都在我脑海里,所以任何帮助都会非常感激!

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

CODE

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

编辑:

很抱歉,如果问题不够明确。 我的问题是:

如果文档包含文本文件中包含的任何特定单词,我该如何找到。 我已经阅读了许多其他问题,答案和教程,它可能只是我,但我完全没有得到它。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

您似乎正在使用Microsoft的互操作类,因此您可以使用Outlook.Interop.Find

MSDN description and 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.");
} }

但你有很多其他方法可以做到这一点..