描述
我正在将Excel文件加载到WinForm webbrowser控件对象中。加载后,我可能需要打开其他Excel文件。但是,当浏览器控件加载时,它会阻止在使用双击时加载另一个工作簿。但是,如果我开始 - >运行Excel应用程序,然后选择文件 - >打开文档,它会加载,我可以在网页浏览器中的工作簿和刚才打开的工作簿之间进行切换。我使用.NET参考Microsoft.Office.Internet.Excel 14.0.0.0。Webbrowser控件中的Excel控件从其他文件锁定Excel
是否有反正在加载浏览器控件时双击打开文件?
代码WebBrowser控件中加载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进程WebBrowser控件的加载,但有同样的问题后:
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