【发布时间】:2020-01-10 20:59:46
【问题描述】:
我创建了一个程序,用于搜索 excel、word 和 txt 文件以查找用户输入的字符串。因此,我打开每个文件,搜索字符串,如果文档包含此字符串,则将文件(带有信息)添加到数据网格中。
该程序运行良好,除了一些不可预见的情况。如果用户在开始搜索时没有打开 excel,程序会打开一个新的 excel 实例并开始搜索。在此搜索过程中,如果用户随后从 Windows 资源管理器打开了一个 excel 文件,它将在我的程序正在使用的同一实例中打开它,然后继续显示它正在打开、搜索和关闭的所有文件。
如果用户已经打开了 excel,那么我的程序会打开它自己的实例并且没有问题。完全相同的问题也适用于 word 文档。
我的问题是,如何防止用户在我的程序当前使用的同一个 excel 实例中打开文件?
以下是我如何访问 excel 的基础知识:
using Excel = Microsoft.Office.Interop.Excel;
Excel.Application xlsApp = new Excel.Application();
Excel.Workbook wkb = null;
Excel.Workbooks wkbs = xlsApp.Workbooks;
xlsApp.DisplayAlerts = false;
wkb = wkbs.Open(filePath, ReadOnly: true);
//Do search here...
//Close the workbook when necessary...
wkb.Close(false);
//Close the app when necessary...
xlsApp.Quit();
我希望可以设置一些参数来防止用户在同一实例中打开文档。
【问题讨论】: