在最新的Visual Studio 2005中,为我们提供了一个WebBrowser的封装控件,这个控件隐藏了底层的axWebBrowser控件,我们就利用WebBrowser控件来完成我们的Excel等ActiveDocument的嵌入和操作。在此之前,你需要将Office的.Net库安装到你的机器上。
"|.D"xo"K6t\(Ru0
j(H#DC'XN(J1X01.在你的工具栏上选择WebBrowser控件,将其放到你的Form上
+f5aNHH;i"Jru,V0
8vRL2v@%|$l"P051Testing软件测试网^J?#[;Q/S~
J
Z"x1U;E1N)yR02.在Form上增加一个控件来使其加载一个Excel文件,如下:51Testing软件测试网9[2LS^4N_[d
x2_
51Testing软件测试网^L5v.Y |
v~+stP0
iaN,W9dy0Button的事件处理程序:51Testing软件测试网V
Dd}EI*In
privatevoidbutton1_Click_1(objectsender, EventArgs e)51Testing软件测试网 t!I,zmql @ b
{51Testing软件测试网Q5],g{'k%V;v
stringstrFileName =@"d:\a.xls";51Testing软件测试网{w f2rFOL:k
Object refmissing = System.Reflection.Missing.Value;51Testing软件测试网p-yD6e'|Y
this.webBrowser1.Navigate(strFileName);
*Gu'z+]Jn*vf0 objectaxWebBrowser =this.webBrowser1.ActiveXInstance;51Testing软件测试网6N-oX _I,Jy(f
}51Testing软件测试网K'AF#n-MUG
(Y@s\,mR~03.增加WebBrowser的DocumentComplete事件处理程序
le1Ht N(k/k+h(B:I0privatevoidwebBrowser1_DocumentCompleted_1(objectsender, WebBrowserDocumentCompletedEventArgs e)
;hj^Goa_c.{0{
FI*vnx"pXL0 Object refmissing = System.Reflection.Missing.Value;
D7Il$i-RDw!w0 object[] args =newobject[4];51Testing软件测试网9Yi:x)}v!l
args[0] = SHDocVw.OLECMDID.OLECMDID_HIDETOOLBARS;
e"Q7gS}0 args[1] = SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER;
&^wYD#@[u6U0 args[2] = refmissing;51Testing软件测试网"rBS
L Z,YgC
args[3] = refmissing;51Testing软件测试网s,sLpQ
~!Y!v
51Testing软件测试网M1x jS1p5lX"H!`
objectaxWebBrowser =this.webBrowser1.ActiveXInstance;
+^^a3M-r-Q[0 51Testing软件测试网6eI5|w0}1T
axWebBrowser.GetType().InvokeMember("ExecWB",51Testing软件测试网 x!t3pGp$W
BindingFlags.InvokeMethod,null, axWebBrowser, args);51Testing软件测试网.E$m'I#C$u8ptI7S6h,[
^'fA|'A0 51Testing软件测试网rdbfJ
objectōApplication = axWebBrowser.GetType().InvokeMember("Document",51Testing软件测试网v H']9p"cxP
BindingFlags.GetProperty,null, axWebBrowser,null);51Testing软件测试网R+ON~!k(l$xS
51Testing软件测试网5[l
tu
m(D$R A5\
Excel.Workbook wbb = (Excel.Workbook) oApplication;51Testing软件测试网)@5}fn5WX*VLEd
Excel.ApplicationClass excel = wbb.ApplicationasExcel.ApplicationClass;51Testing软件测试网(J,t&F2y d'T"q
M
Excel.Workbook wb = excel.Workbooks[1];51Testing软件测试网`*z^H] y}%j
Excel.Worksheet ws = wb.Worksheets[1]asExcel.Worksheet;
r%i c5?"~o#p0 ws.Cells.Font.Name ="Verdana";51Testing软件测试网)U8f#a#{z6r
ws.Cells.Font.Size = 14;
)n0k@l4wR3J)L0 ws.Cells.Font.Bold =true;
AO/_A0u-yxV0 Excel.Range range = ws.Cells;
A
g_6Nb0
S(x]Yl$CM0 Excel.Range ōCell = range[10, 10]asExcel.Range;
Tt](Qmt/C.UB"O3l0 oCell.Value2 ="你好";
*{2Yd'Z]SE0}
X/A9Qx:yZAB0
7s#^uu%Up;DbH0这里要注意,WebBrowser加载Excel文档后,并不显示工具栏,为此我们需要使用高级一点的技术,通过反射调用底层的方法来实现,首先我们需要找到WebBrowser封装的AxWebBrowser控件。51Testing软件测试网2k#^D*F:? T
objectaxWebBrowser =this.webBrowser1.ActiveXInstance;51Testing软件测试网faL*A5a
}Bxh?v FCW/IC[0然后,我们调用反射来显示工具栏
2C2n
gmw8eb#C0Object refmissing = System.Reflection.Missing.Value;51Testing软件测试网{B:GUh(FN
object[] args =newobject[4];51Testing软件测试网+Wi2a9^H!d+Z
]8b
args[0] = SHDocVw.OLECMDID.OLECMDID_HIDETOOLBARS;51Testing软件测试网.^R:t:ly{*tT
args[1] = SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER;51Testing软件测试网}s,uM9|8Xt
d([
args[2] = refmissing;
6V+?s,t$o^0args[3] = refmissing;
8~1F9y4\@%[0
a#f1U$B6dxu6H0axWebBrowser.GetType().InvokeMember("ExecWB", BindingFlags.InvokeMethod,null, axWebBrowser, args);
@?/YlI6|9_0Uo0
QZC!NKnQ&iE0注:如果你直接使用AxWebBrowser控件,那你就可以直接调用ExecWB方法来显示工具栏。如下:51Testing软件测试网 E
[[3P A"w z[7p;f
axWebBrowser1.ExecWB(SHDocVw.OLECMDID.OLECMDID_HIDETOOLBARS, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER, refmissing, refmissing)51Testing软件测试网)i-s#c~3T
51Testing软件测试网l5w b-Jo.e-~:r
好了,现在你需要获得你的Excel对象来操作Excel,此时需要使用Office的.Net库来完成。代码如下:
P^0B)}|i
v0objectōApplication = axWebBrowser.GetType().InvokeMember("Document",51Testing软件测试网/yTWNT8QC
BindingFlags.GetProperty,null, axWebBrowser,null);51Testing软件测试网/{5y@5C!t aj
[
xA&HSQ0Excel.ApplicationClass excel = wbb.ApplicationasExcel.ApplicationClass;
?0M^8x@!o6D0Excel.Workbook wb = excel.Workbooks[1];
|tSr-l+F;w}0<P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 0cm; BACKGROUND: #eeefe6; PADDING-BOTTOM: 0cm; MARGIN: 0cm 0cm 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0cm; BORDER-BOTTOM: medium none; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso
相关阅读:
- HTTP 常见错误 (UniqueStudioWCD, 2008-4-08)
- 如何看懂ping命令(转载) (SWeiNi, 2008-5-26)
- Web Service创建和发布以及调用 (wonew1228, 2008-8-14)
- tomcat目录含义 (wonew1228, 2008-8-16)
- Delphi2009/C++Builder2009(Tiburon)正式发布 (ZERONG.HE, 2008-9-01)
- 微软工作流入门(www.jiedichina.com)[转载] (wonew1228, 2008-9-04)
- C#关闭进程 (UniqueStudioWCD, 2008-11-11)
- C#对Excel报表进行操作(读写和基本操作) (wonew1228, 2008-11-19)
- 用C#读xml文件 (wonew1228, 2008-12-01)
- 关于EXCEL嵌入winform的webbrowser控件的问题 (wonew1228, 2008-12-03)
收藏
举报
TAG:
软件开发相关