C#中内嵌Excel程序 大家好,小弟想写一个程序,其中程序可以把Excel程序显示在程序界面中,就像在程序界面中打开Excel 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 datagridview详见:http://hi.baidu.com/ytit/blog/item/19ce783b3943f5fa55e72353.html 首先谢谢楼上的建议,但这并不是我想实现的,而是把office中的Excel程序嵌入在本人开发的程序窗体内。。 dsoframe能用在winform上吗?本人想开发个桌面程序,而不是web程序。谢谢 這是你的第一選擇http://www.ocxt.com/我博客有介紹http://ufo-crackerx.blog.163.com/blog/static/113078778201174113024397/ winform里不可以嵌excel,可以参考使用一些类似的控件,很多都是第三方开发的。 就要实现你三楼要的效果吗?那是打开excel,并且嵌入到你的控件面板里了。这个引入SetParent这个WindowsAPI,把启动的那个excel程序添加到panel里就好了。另外你展示的那个图片,好像是delphi或CB写的 是的,我是需要实现三楼的效果。依您所说,我在程序里打开了Excel,然后怎么获得Excel的对象并把它放到Panel里面呢?请给个简单的例子,如果是C#就求之不得了。谢谢另外,我需要操作这个Excel(除了用户操作,还有程序对excel的操作),又如何实现呢?麻烦提示提示... dsoframe当然可以嵌入到Winform里 SetParent API函数或者用WebBroswer控件都可以. 是的,我是需要实现三楼的效果。依您所说,我在程序里打开了Excel,然后怎么获得Excel的对象并把它放到Panel里面呢?请给个简单的例子,如果是C#就求之不得了。谢谢另外,我需要操作这个Excel(除了用户操作,还有程序对excel的操作),又如何实现呢?麻烦提示提示... dsoframer.ocx自己去网上搜资料。我刚用过这个,他只是一个组件,调window office。微软几年前就放弃这个了。 http://www.ocxt.com/ 是最好的選擇,沒有其它能相比的 Microsoft.Office.Interop.Excel.Application excel_H = new Microsoft.Office.Interop.Excel.Application();excel_h.visible=true;intptr hwnd=excel_h.hwnd;setparent(hwnd,this.panel1); 可以,dsoframe是微软自己出的,你要的功能都有,但据说和off2007某个功能冲突,而且微软现在也不提供下载了,我最近也在研究这个另外 string strFileName = @"d:\11.xls"; Object refmissing = System.Reflection.Missing.Value; webBrowser1.Navigate(strFileName, refmissing.ToString()); 也可以,再多功能自己搜索下,(最大缺点是同时只能打开1个EXCEL) 谢谢大家,问题解决了。本人利用以上的方法实现。但是有点无奈,在msdn没有找到对Application 正确的说明,只能从网上找一些相关的例子看。下面大概是实现的代码,如果有问题,请提示。。谢谢楼上那么多位大哥 [DllImport("user32.dll", CharSet = CharSet.Auto)] Microsoft.Office.Interop.Excel.Application app = null; Workbook workbook1 = null; private void sdasdasdToolStripMenuItem_Click(object sender, EventArgs e) { app = new Microsoft.Office.Interop.Excel.Application(); workbook1 = app.Workbooks.Add(XlWBATemplate.xlWBATWorksheet); workbook1.Activate();//激活sheet1表 app.Visible = true; IntPtr hwnd = (IntPtr)app.Hwnd; SetParent(hwnd, this.panel1.Handle); } 补充[DllImport("user32.dll", CharSet = CharSet.Auto)]public extern static IntPtr SetParent(IntPtr hChild, IntPtr hParent); 不过有个问题,有时候打开的excel跟正常打开的Excel一样,有时候就只显示sheet,菜单栏等等全都没了 没有了说明你打开了两个以上同类文档, 因为只有一个文档处于激活状态,这个在MSDN上有相关说明的. 我问一下楼主?你是如何控制EXCEL在panel中的大小的?急?感谢... 求教一个问题 如何判断一个Int型整数的最高位 +=在这里什么意思啊?如何理解? c#配置问题,请好心的人帮帮忙看下 开发QQ农场辅助工具必须要用多线程吗? 有一个数组str,数组元素有{a,b,c,e},判断f是否在数组str中 Windows Service 怎么调试 asp和.net中 session值可以互传吗? C#中关于使用Lock()的一点疑问 为何点击模态对话框后,不返回? C# 提取QQ微博信息,还是正则问题。。。会的大哥请帮帮帮忙,网页源代码已经下下来了,就差提取了。。。。 怎样生成目标电脑不变的唯一机器码
我博客有介紹
http://ufo-crackerx.blog.163.com/blog/static/113078778201174113024397/
那是打开excel,并且嵌入到你的控件面板里了。
这个引入SetParent这个WindowsAPI,
把启动的那个excel程序添加到panel里就好了。
另外你展示的那个图片,好像是delphi或CB写的
依您所说,我在程序里打开了Excel,然后怎么获得Excel的对象并
把它放到Panel里面呢?请给个简单的例子,如果是C#就求之不得了。谢谢另外,我需要操作这个Excel(除了用户操作,还有程序对excel的操作),又如何实现呢?
麻烦提示提示...
是的,我是需要实现三楼的效果。
依您所说,我在程序里打开了Excel,然后怎么获得Excel的对象并
把它放到Panel里面呢?请给个简单的例子,如果是C#就求之不得了。谢谢另外,我需要操作这个Excel(除了用户操作,还有程序对excel的操作),又如何实现呢?
麻烦提示提示...
我刚用过这个,他只是一个组件,调window office。
微软几年前就放弃这个了。
excel_h.visible=true;
intptr hwnd=excel_h.hwnd;
setparent(hwnd,this.panel1);
另外
string strFileName = @"d:\11.xls";
Object refmissing = System.Reflection.Missing.Value;
webBrowser1.Navigate(strFileName, refmissing.ToString());
也可以,再多功能自己搜索下,(最大缺点是同时只能打开1个EXCEL)
但是有点无奈,在msdn没有找到对Application 正确的说明,只能从网上找一些相关的例子看。
下面大概是实现的代码,如果有问题,请提示。。谢谢楼上那么多位大哥 [DllImport("user32.dll", CharSet = CharSet.Auto)]
Microsoft.Office.Interop.Excel.Application app = null;
Workbook workbook1 = null;
private void sdasdasdToolStripMenuItem_Click(object sender, EventArgs e)
{
app = new Microsoft.Office.Interop.Excel.Application();
workbook1 = app.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
workbook1.Activate();//激活sheet1表
app.Visible = true;
IntPtr hwnd = (IntPtr)app.Hwnd;
SetParent(hwnd, this.panel1.Handle);
}
public extern static IntPtr SetParent(IntPtr hChild, IntPtr hParent);