如何在Form中嵌入Excel

.NET Framework1.0和1.1 都没有实现OleContainer组件。查遍MSDN,最后得了一个提示:可以使用IEBrowser来模拟OleContainer。这绝对是一个超重的实现,不过,最目前情况下,却是一个最省事的方法。本文就简单的说明一下,如何使用IEBrowser控件来嵌入Excel表格。

如何在Form中嵌入Excel   沐枫网志


    1. 首先,需要在工具栏中导入“Microsoft WEB 浏览器”。可以在工具栏上点右键,选择“添加/移除项”。然后在出现的自定义工具箱中选择“COM组件”,最后在组件中找到“Microsoft Web 浏览器”,勾选并确定。

    2. 建立一个Form,在工具栏中选择“Microsoft Web浏览器”组件,放到Form中。

    3. 使用以下的代码,以便导入一个Excel表格:

None.gif axWebBrowser1.Navigate( @" c:\test\test.xls " );
None.gif

    4. 加入axWebBrowser1的DocumentComplete事件。并在事件中获取Excel的Ole对象:

None.gif public  Excel.Workbook wb;
None.gif
None.gif
private   void  axWebBrowser1_DocumentComplete( object  sender, AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEvent e)
ExpandedBlockStart.gifContractedBlock.gif  
dot.gif {
InBlock.gif    wb 
= (Excel.Workbook)axWebBrowser1.Document;
ExpandedBlockEnd.gif  }

None.gif

    5. 通过wb,就可以直接访问Excel表格了。

虽然用IE控件很简单,但并不是一个很好的方法。目前也只有第三方控件,或是期待.NET 2.0了。如果大家有更好的方法,不妨共享一下。

潜在问题:
    1. 在使用Office2000时,Excel退出是一个问题。可能导致无法准确让Excel退出,或者Excel在退出时产生错误。这样可能在系统中留下一大堆Excel进程。实践中发现,使用Office2003时,这个问题被解决。OfficeXP和Office2002没有做过试验,不知道是否也解决了。
    2. 数据操作比较慢。这是与COM接口相关。对COM有较深了解的话,可以进行许多优化,使效率得到大的提升。

暂时解决方法:
    1. 使用Excel2003,可解决Excel退出问题
    2. 使用Office Web Components v10/v11 的 SpreadSheet组件目前是一个好的解决方法。

附:
    使用OWC,建议使用OWC10或OWC11版本。OWC9因为许可证问题比较麻烦,不建议使用。
    SpreadSheet可接受的数据源比较多种,包括 ADODB.RecordSet,csv格式文本,HTML表格格式,以及XML格式,使用上比较灵活,并且可以在SpreadSheet工具栏上直接导出到Excel中。
    关于SpreadSheet的使用,网络上有许多文章已经介绍了,在google中就可以搜索得到,希望对大家有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值