作者:乔山办公网日期:
返回目录:excel表格制作
这个可以吗 ?
我有看到过类似的控件有这个功能, 不过是收费的,好像叫flex cell,具体记不太清楚,大概是这个样子.
真希望EXCEL能嵌入到WINFORM中,哈哈.
你这个问题我也遇到 了,纠结了抄好久,office2003用WEBBROWSER 这个方法可以,可2007不行,不过我最后找到办法解决了,理解寻找解决办法人的心情,所以这里贡袭献出来给大家。
DsoFramer_KB311765_x86.exe
用这个控件,可以上网去下载,百度或到微软官网下载。如果下不到也可以找我发。
这个控件可以在WINFORM里面直接把EXCEL引用上来显示在控件里面,就像在百操作EXCEL一模一样。
可以在Excel里面先设置好,把标题隐度藏,状态栏,编辑栏,滚动条等这些隐藏,这样看起来也看不出是在Excel操作。也可以在Excel里设置好数据有效性,这样就只能选择,可以设置只允许用问户选择指定单元格,其他单元格不能选择。包括颜色,工作表保护,禁止随便修改。也可以在Excel里面设置好宏,这里操作也会答执行。
用dataGridView控件。基本上显示效果可以和EXCEL相同。即使想做汇总,合并之类的都可以。
由于目前,C#和VB.net都不支持OLE技术(参见微软支持中心Info:304562),,所以只有使用WebBrowser控件来完成此功能。(以下方法参见微软支持中心Howto:304662)
1、右击工具箱,选择自定义工具箱,添加7a64e4b893e5b19e334COM组件,选择“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);