C# winform中以excel的方式编辑表格 100
我想要建一个winform上面有一个和excel类似的表格编辑控件这个表格编辑控件的功能要求有像excel那样选中一行往下拖动时可以自动填充下面的行,同时数值字段能够自动...
我想要建一个winform 上面有一个和excel类似的表格编辑控件
这个表格编辑控件的功能要求有像excel那样选中一行往下拖动时可以自动填充下面的行,同时数值字段能够自动增加的功能
编辑完成后把数据保存到数据库
请问微软有没有直接提供excel控件?或者还有什么第三方控件可以完成这样的功能
我的开发环境是vs2010 语言是c# 展开
这个表格编辑控件的功能要求有像excel那样选中一行往下拖动时可以自动填充下面的行,同时数值字段能够自动增加的功能
编辑完成后把数据保存到数据库
请问微软有没有直接提供excel控件?或者还有什么第三方控件可以完成这样的功能
我的开发环境是vs2010 语言是c# 展开
7个回答
展开全部
由于目前,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);
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);
展开全部
可以试试使用WebBrowser控件加载一个Execl文件的方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我给你分析分析 如果你的界面只有一个excel文件 那很好办的 直接用 webbrowser 它有个方法 叫什么axWebBrowser1_NavigateComplete2 (。。。。。。)这里面的参数可以针对excel里面的单元格用代码去修改 如果 你想直接在excel界面里面搞的话 那就更加容易了呀!
Object refmissing = System.Reflection.Missing.Value;
axWebBrowser1.ExecWB (SHDocVw.OLECMDID.OLECMDID_HIDETOOLBARS, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER, ref refmissing, ref refmissing);
Object o = e.pDisp;
Object oDocument = o.GetType().InvokeMember("Document", BindingFlags.GetProperty, null, o, null);
Object oApplication = o.GetType().InvokeMember("Application", BindingFlags.GetProperty, null, oDocument, null);
ExcelApp = (Excel.Application)oApplication;
//这样就可以象上文中所述来操作Excel了。
Excel.Worksheet ws = (Excel.Worksheet)ExcelApp.Workbooks[1].Worksheets[1];
string str = ws.get_Range("D4", "D4").Value2.ToString();
这样就把 D4列的值弄出来了 如果你需要同一类很多值 那么就用for循环 查数据就可以了
给你几个地址 自己看吧 懒得写代码了
http://www.cnblogs.com/peterzb/archive/2009/07/21/1527415.html
http://www.cnblogs.com/emanlee/archive/2007/05/31/766520.html
http://www.cnblogs.com/jinglelin/archive/2007/07/31/837722.html
Object refmissing = System.Reflection.Missing.Value;
axWebBrowser1.ExecWB (SHDocVw.OLECMDID.OLECMDID_HIDETOOLBARS, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER, ref refmissing, ref refmissing);
Object o = e.pDisp;
Object oDocument = o.GetType().InvokeMember("Document", BindingFlags.GetProperty, null, o, null);
Object oApplication = o.GetType().InvokeMember("Application", BindingFlags.GetProperty, null, oDocument, null);
ExcelApp = (Excel.Application)oApplication;
//这样就可以象上文中所述来操作Excel了。
Excel.Worksheet ws = (Excel.Worksheet)ExcelApp.Workbooks[1].Worksheets[1];
string str = ws.get_Range("D4", "D4").Value2.ToString();
这样就把 D4列的值弄出来了 如果你需要同一类很多值 那么就用for循环 查数据就可以了
给你几个地址 自己看吧 懒得写代码了
http://www.cnblogs.com/peterzb/archive/2009/07/21/1527415.html
http://www.cnblogs.com/emanlee/archive/2007/05/31/766520.html
http://www.cnblogs.com/jinglelin/archive/2007/07/31/837722.html
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用DataGridView这个控件试试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
加载ExcelSheet至控件中。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |