Описание
Я загружаю файл Excel в объект управления веб-браузера WinForm.После загрузки может потребоваться открыть другие файлы Excel.Но когда загружен элемент управления веб-браузера, он предотвращает загрузку другой книги при двойном щелчке.Однако, если я запускаю-> Запустить приложение Excel, затем Файл-> Открыть документ, он загружается, и я могу обмениваться между книгой в веб-браузере и книгой, которую я только что открыл.Я использую ссылку .NET Microsoft.Office.Internet.Excel 14.0.0.0.
Есть ли способ открыть файл двойным щелчком, когда загружен элемент управления веб-браузера?
Код для загрузки файла Excel в элемент управления веб-браузера
protected Microsoft.Office.Interop.Excel.Application _excelApp = null;
protected Workbook _workbook = null;
protected Worksheet _worksheet = null;
//Load the Excel file in the WebBrowser control
this.webBrowser.Navigate("MyFile.xls", false);
//Get the ActiveXinstance from the WebBrowser Container
SHDocVw.WebBrowser wb = (SHDocVw.WebBrowser)this.webBrowser.ActiveXInstance;
//Make the web browser silent so dialog boxes are not displayed
wb.Silent = true;
//Assign the document to an object
object odocument = wb.Document;
//Convert the Document to an Excel application
_excelApp = (Microsoft.Office.Interop.Excel.Application)odocument.GetType().InvokeMember("Application", BindingFlags.GetProperty, null, odocument, null);
//Do not display alerts
_excelApp.DisplayAlerts = false;
//Assign a workbook to the Excel application. Use .Count in case there are other workbooks open in the Excel application
_workbook = (Workbook)_excelApp.Workbooks[_excelApp.Workbooks.Count];
//Assign a worksheet to the workbook (Excel objects are 1-based)
_worksheet = (Worksheet)_workbook.Worksheets[1];
Я попытался запустить другой процесс Excel после загрузки элемента управления веб-браузера, но возникла та же проблема:
System.Diagnostics.Process.Start(@"C:\Program Files\Microsoft Office\OFFICE11\Excel.exe");
Я также попытался создать другой объект Excelно ссылка .NET, кажется, объединяет оба в один процесс:
oXL=new Microsoft.Office.Interop.Excel.Application
Я заметил, что эта проблема VS2008 была рассмотрена много, но не была решена: https://stackoverflow.com/questions/2867744/webbrowser-locks-first-excel-instance