C# winform中以excel的方式编辑表格 100

我想要建一个winform上面有一个和excel类似的表格编辑控件这个表格编辑控件的功能要求有像excel那样选中一行往下拖动时可以自动填充下面的行,同时数值字段能够自动... 我想要建一个winform 上面有一个和excel类似的表格编辑控件
这个表格编辑控件的功能要求有像excel那样选中一行往下拖动时可以自动填充下面的行,同时数值字段能够自动增加的功能
编辑完成后把数据保存到数据库
请问微软有没有直接提供excel控件?或者还有什么第三方控件可以完成这样的功能

我的开发环境是vs2010 语言是c#
展开
 我来答
善良的独孤风雪
推荐于2016-06-27 · TA获得超过4.1万个赞
知道大有可为答主
回答量:7536
采纳率:91%
帮助的人:1801万
展开全部
  由于目前,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);
狮是搞完泪18
2013-03-11 · TA获得超过270个赞
知道小有建树答主
回答量:257
采纳率:0%
帮助的人:258万
展开全部
可以试试使用WebBrowser控件加载一个Execl文件的方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
新华软件开发
2013-04-17 · TA获得超过476个赞
知道答主
回答量:102
采纳率:0%
帮助的人:39.5万
展开全部
我给你分析分析 如果你的界面只有一个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
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
75...4@qq.com
2013-03-11 · 贡献了超过111个回答
知道答主
回答量:111
采纳率:0%
帮助的人:33.2万
展开全部
用DataGridView这个控件试试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bxfc
2013-03-11 · TA获得超过872个赞
知道小有建树答主
回答量:1104
采纳率:0%
帮助的人:682万
展开全部
加载ExcelSheet至控件中。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式