我们可以使用FileStream对象来把文本文件里面的信息读取出来,但是对于word文档来说就不能使用这样的方法了.这种情况下我们需要使用叫做” Microsoft Word 9.0 object library”COM组件来实现,它为我们提供了所有用来读取word文档的对象和方法.这里我们主要用Word.ApplicationClass下的方法来处理word应用程序.实现的思路是先在内存中把这个word文档打开,然后把里面的内容全部拷贝的剪切板中,最后再把数据从剪切板里面取出来.代码如下:Word.ApplicationClass wordApp=new ApplicationClass();object file=path;object nullobj=System.Reflection.Missing.Value; Word.Document doc = wordApp.Documents.Open(ref file, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj);doc.ActiveWindow.Selection.WholeStory();doc.ActiveWindow.Selection.Copy();IDataObject data=Clipboard.GetDataObject();txtFileContent.Text=data.GetData(DataFormats.Text).ToString();doc.Close();
大概的步骤如下:
1。系统引用Microsot word object library;
2. 创建Word.Application对象实例;通过其documents属性集合的open()方法打开你要读取的word文档;
3。创建一个Range对象(从文档开头到文档结束),获得其Text属性即为文档内容 示例程序如下:
变量strContent保存的即为word文档内容
Word.Application app = new Word.ApplicationClass();
object obj = System.Reflection.Missing.Value;
object fileName = "d:\\a.doc";
Word.Document doc = app.Documents.Open( ref fileName,ref obj , ref obj,ref obj, ref obj,ref obj,ref obj, ref obj, ref obj ,ref obj ,ref obj, ref obj, ref obj, ref obj, ref obj, ref obj); object count = doc.Characters.Count;
object start = 0;
string strContent = doc.Range(ref start,ref count).Text;
object objNotSave = false;
doc.Close(ref objNotSave, ref obj, ref obj);
app.Quit(ref objNotSave, ref obj, ref obj);
if(doc != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(doc);
doc = null;
} if(app != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
app = null;
} MessageBox.Show(strContent);