在中WebBrowser加载Excel后获取excel对象
在最新的Visual?Studio?2005中,為我們提供了一個(gè)WebBrowser的封裝控件,這個(gè)控件隱藏了底層的axWebBrowser控件,我們就利用WebBrowser控件來完成我們的Excel等ActiveDocument的嵌入和操作。在此之前,你需要將Office的.Net庫安裝到你的機(jī)器上。
1.在你的工具欄上選擇WebBrowser控件,將其放到你的Form上
2.在Form上增加一個(gè)控件來使其加載一個(gè)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.增加WebBrowser的DocumentComplete事件處理程序
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文檔后,并不顯示工具欄,為此我們需要使用高級(jí)一點(diǎn)的技術(shù),通過反射調(diào)用底層的方法來實(shí)現(xiàn),首先我們需要找到WebBrowser封裝的AxWebBrowser控件。
objectaxWebBrowser =this.webBrowser1.ActiveXInstance;
然后,我們調(diào)用反射來顯示工具欄
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控件,那你就可以直接調(diào)用ExecWB方法來顯示工具欄。如下:
axWebBrowser1.ExecWB(SHDocVw.OLECMDID.OLECMDID_HIDETOOLBARS, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER, refmissing, refmissing)
好了,現(xiàn)在你需要獲得你的Excel對(duì)象來操作Excel,此時(shí)需要使用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];
<P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 0cm; BACKGROUND: #eeefe6; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; PADDING-TOP: 0cm; BORDER-BOTTOM: medium none; TEXT-ALIGN: left; mso轉(zhuǎn)載于:https://www.cnblogs.com/deng02/archive/2010/04/20/1716012.html
總結(jié)
以上是生活随笔為你收集整理的在中WebBrowser加载Excel后获取excel对象的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL中的left join与right
- 下一篇: [其它] - 博客园积分算法探讨