.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了。如果大家有更好的方法,不妨共享一下。