.net framework1.0和1.1 都没有实现olecontainer组件。查遍msdn,最后得了一个提示:可以使用iebrowser来模拟olecontainer。这绝对是一个超重的实现,不过,最目前情况下,却是一个最省事的方法。本文就简单的说明一下,如何使用iebrowser控件来嵌入excel表格。
1. 首先,需要在工具栏中导入“microsoft web 浏览器”。可以在工具栏上点右键,选择“添加/移除项”。然后在出现的自定义工具箱中选择“com组件”,最后在组件中找到“microsoft web 浏览器”,勾选并确定。见下图:
2. 建立一个form,在工具栏中选择“microsoft web浏览器”组件,放到form中。
3. 使用以下的代码,以便导入一个excel表格:
axwebbrowser1.navigate(@”c:\test\test.xls”);
4. 加入axwebbrowser1的documentcomplete事件。并在事件中获取excel的ole对象:
public excel.workbook wb;
private void axwebbrowser1_documentcomplete(object sender, axshdocvw.dwebbrowserevents2_documentcompleteevent e)
{
wb = (excel.workbook)axwebbrowser1.document;
}
5. 通过wb,就可以直接访问excel表格了。
虽然用ie控件很简单,但并不是一个很好的方法。目前也只有第三方控件,或是期待.net 2.0了。如果大家有更好的方法,不妨共享一下。