C#winform中如何嵌入Excel?嵌入后的效果最好如同VS 2008 VSTO工程开发环境那样,完成菜单合并,不影响菜单、工具栏的功能。期待高手前辈献计献策。

解决方案 »

  1.   

    呵呵,最近做Excel开发,不过嵌入到WinForm没做,在查询资料的过程中看到有一些关于将Excel嵌入到WINForm的文章,给你看看,希望能帮到你!!将excel用户界面嵌入到自己的windows form中 由于目前,c#和vb.net都不支持ole技术(参见微软支持中心info:304562),,所以只有使用webbrowser控件来完成此功能。(以下方法参见微软支持中心howto:304662) 
    1、右击工具箱,选择自定义工具箱,添加com组件,选择“microsoft web 浏览器”(对应文件是\winnt\system32\shdocvw.dll),确定。在工具箱中将会出现文本为explorer的webbroser控件图标。 
    2、在form1中添加webbrowser控件。(对象名却省是axwebbrowser1) 
    3、假定要打开的excel文件是: c:\a.xls。 
    string strfilename = @"c:\a.xls"; 
    object refmissing = system.reflection.missing.value; 
    axwebbrowser1.navigate(strfilename, ref refmissing , ref refmissing , ref refmissing , ref refmissing); 
    值得注意的是用webbrowser控件不支持菜单合并,也就是说无法把excel表的菜单带入到我们的程式中。这是相对于ole实现方法的一大缺点。幸好提供了能把工具栏添加进来的功能,通过工具栏能进行许多excel专有的操作。 
    //下面这句能将excel本身的工具调添加进来 
    axwebbrowser1.execwb(shdocvw.olecmdid.olecmdid_hidetoolbars, shdocvw.olecmdexecopt.olecmdexecopt_dontpromptuser,ref refmissing , ref refmissing); 
      

  2.   

    codeproject上有那种例子。
    可以找下,这是个WORD的:http://download.csdn.net/source/1584831
      

  3.   

    一直用 axWebBrowser 做,不支持菜单合并,支持工具栏合并。VSTO 没用过。
      

  4.   

    rushsky的资料我也看过了,并且已经做过尝试,但是webbrowser下很多正常的Excel功能操作受到严重影响,效果十分的不如意。
      

  5.   

    To: flyerwing
    我下载下来看了,除了菜单合并,貌似我想要的效果。但可惜只有执行文件,没有代码呀?在线等。
      

  6.   

     http://d.download.csdn.net/down/804306/KingWJZ 上提供了下载,先学习一下。
      

  7.   

    winform操作execl大全
      

  8.   

    Toolbox里头com面板选Microsoft office spreadsheet,好像就是excel表格控件
      

  9.   

    这样的东西, 做出来, 就跟受了辐射的鸡鸡一样难看, 无聊office 系列, 如果用, 就给他们写 plugin, addin, 
      

  10.   

    以前弄过visio,经过牛人做的,但是很麻烦
    后来就不用了,还不如找个控件
      

  11.   


    如果只是做插件微软已经给了解决方案VSTO,VSTO已经实现的很好了,就不用在这里讨论了。有这样的需求就有市场。像这些的跟帖,到此请打住吧,谢谢楼上各位了。
      

  12.   

    可以在你的FORM中,启动EXCEL就是让EXCEL在你的FORM中运行。参考, 在WINFORM在嵌入控制台程序:http://www.chenjiliang.com/Article/View.aspx?ArticleID=17861
      

  13.   

    先谢谢楼上。我才疏学浅,看了你给的例子,理论上是可行的。只是Excel的对象模型与控制台程序大相径庭,有没有更贴切一点的。