C# После открытия книги Excel, как я могу запретить пользователю открывать другой файл Excel (через windows) в том же экземпляре Excel? - PullRequest
0 голосов
/ 10 января 2020

Я создал программу, которая ищет файлы Excel, Word и TXT для введенной пользователем строки. Поэтому я открываю каждый файл, ищу строку и добавляю файл (с информацией) в сетку данных, если документ содержит эту строку.

Программа отлично работает, за исключением некоторых непредвиденных ситуаций. Если пользователь не открыл Excel при запуске поиска, программа откроет новый экземпляр Excel и начнет поиск. Во время этого поиска, если пользователь затем откроет файл Excel из windows explorer, он откроет его в том же экземпляре, что и моя программа, который затем продолжит показывать все файлы, которые он открывает, ищет, затем закрывает.

Если у пользователя уже есть Excel Open, то моя программа открывает свой собственный экземпляр, и это не проблема. Точно такая же проблема относится и к текстовым документам.

Мой вопрос: как я могу запретить пользователю открывать файл в том же экземпляре 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();

Я надеюсь, что есть какой-то параметр, который я могу установить, чтобы запретить пользователю открывать документы в одном экземпляре.

...