Word ApplicationClass问题

我正在使用Microsoft.Office.Interop.Word.ApplicationClass来读取一组Word文档。 我能够很好地阅读它们,但我注意到用于阅读这些文档的过程实际上根据Windows任务管理器实际上没有结束。

从谷歌开始,似乎没有其他人有这个问题,这让我相信我要么做了一些根本错误的事情,要么我没有能力有效地将我的问题用于谷歌搜索。

我对C#比较新,所以我怀疑前者。 在下面找到我用来创建文档“reader”实例的代码。

 private void readDoc(string docPath) { Word.ApplicationClass wordApp = new Word.ApplicationClass(); object nullObj = System.Reflection.Missing.Value; object roObj = true; object objFile = docPath; try { Word.Document doc = wordApp.Documents.Open(ref objFile, ref nullObj, ref roObj, ref nullObj, ref nullObj, 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 tmpData = Clipboard.GetDataObject(); string docText = tmpData.GetData(DataFormats.Text).ToString(); (...) } catch (Exception ex) { MessageBox.Show(ex.Data); } } 

try块的其余部分处理字符串docText ,不涉及wordAppdoc ,因此我没有将它包含在代码段中。

似乎没有Word.ApplicationClass的.Dispose()函数,所以我在这里有点亏。

编辑 – 抱歉,这里隐含的问题是:如何以编程方式结束流程?

尝试在readDoc()的末尾添加以下内容:

wordApp.Quit(ref nullObj, ref nullObj, ref nullObj);

您应该在代码中使用Word.Application类而不是Word.ApplicationClass

 Word.Application wordApp = new Word.Application(); 

完成后,您需要显式关闭文档和Word应用程序:

 doc.Close(); wordApp.Quit(); 

这是一个常见问题,在此知识库文章中有所描述。