我正在开发一个程序,根据文件中的某些文本将文件分类到组。大多数文件可能是.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();
}
编辑:
很抱歉,如果问题不够明确。 我的问题是:
如果文档包含文本文件中包含的任何特定单词,我该如何找到。 我已经阅读了许多其他问题,答案和教程,它可能只是我,但我完全没有得到它。
答案 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
如果文档包含单词,则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.");
} }
但你有很多其他方法可以做到这一点..