打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
在中WebBrowser加载Excel后获取excel对象

在最新的Visual Studio 2005中,为我们提供了一个WebBrowser的封装控件,这个控件隐藏了底层的axWebBrowser控件,我们就利用WebBrowser控件来完成我们的ExcelActiveDocument的嵌入和操作。在此之前,你需要将Office.Net库安装到你的机器上。

1
.在你的工具栏上选择WebBrowser控件,将其放到你的Form



2
.在Form上增加一个控件来使其加载一个Excel文件,如下:



Button
的事件处理程序:

privatevoidbutton1_Click_1(objectsender, EventArgs e)

{

   stringstrFileName =@'d:\a.xls';

   Object refmissing = System.Reflection.Missing.Value;

   this.webBrowser1.Navigate(strFileName);

   objectaxWebBrowser =this.webBrowser1.ActiveXInstance;

}


3.
增加WebBrowserDocumentComplete事件处理程序

privatevoidwebBrowser1_DocumentCompleted_1(objectsender, WebBrowserDocumentCompletedEventArgs e)

{

   Object refmissing = System.Reflection.Missing.Value;

   object[] args =newobject[4];

   args[0] = SHDocVw.OLECMDID.OLECMDID_HIDETOOLBARS;

   args[1] = SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER;

   args[2] = refmissing;

   args[3] = refmissing;

 

   objectaxWebBrowser =this.webBrowser1.ActiveXInstance;

 

   axWebBrowser.GetType().InvokeMember('ExecWB',

       BindingFlags.InvokeMethod,null, axWebBrowser, args);

 

 

   objectōApplication = axWebBrowser.GetType().InvokeMember('Document',

       BindingFlags.GetProperty,null, axWebBrowser,null);

 

   Excel.Workbook wbb = (Excel.Workbook) oApplication;

   Excel.ApplicationClass excel = wbb.ApplicationasExcel.ApplicationClass;

   Excel.Workbook wb = excel.Workbooks[1];

   Excel.Worksheet ws = wb.Worksheets[1]asExcel.Worksheet;

   ws.Cells.Font.Name ='Verdana';

   ws.Cells.Font.Size = 14;

   ws.Cells.Font.Bold =true;

   Excel.Range range = ws.Cells;

 

   Excel.Range ōCell = range[10, 10]asExcel.Range;

   oCell.Value2 ='你好';

}


这里要注意,WebBrowser加载Excel文档后,并不显示工具栏,为此我们需要使用高级一点的技术,通过反射调用底层的方法来实现,首先我们需要找到WebBrowser封装的AxWebBrowser控件。

objectaxWebBrowser =this.webBrowser1.ActiveXInstance;


然后,我们调用反射来显示工具栏

Object refmissing = System.Reflection.Missing.Value;

object[] args =newobject[4];

args[0] = SHDocVw.OLECMDID.OLECMDID_HIDETOOLBARS;

args[1] = SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER;

args[2] = refmissing;

args[3] = refmissing;

 

axWebBrowser.GetType().InvokeMember('ExecWB', BindingFlags.InvokeMethod,null, axWebBrowser, args);


注:如果你直接使用AxWebBrowser控件,那你就可以直接调用ExecWB方法来显示工具栏。如下:

axWebBrowser1.ExecWB(SHDocVw.OLECMDID.OLECMDID_HIDETOOLBARS, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER, refmissing, refmissing)


好了,现在你需要获得你的Excel对象来操作Excel,此时需要使用Office.Net库来完成。代码如下:

objectōApplication = axWebBrowser.GetType().InvokeMember('Document',

   BindingFlags.GetProperty,null, axWebBrowser,null);

 

Excel.ApplicationClass excel = wbb.ApplicationasExcel.ApplicationClass;

Excel.Workbook wb = excel.Workbooks[1];

打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服