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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# winform中以excel的方式编辑表格相关的知识,希望对你有一定的参考价值。

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

我的开发环境是vs2010 语言是c#

  由于目前,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);
参考技术A 可以试试使用WebBrowser控件加载一个Execl文件的方法 参考技术B 我给你分析分析 如果你的界面只有一个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
参考技术C 用DataGridView这个控件试试。 参考技术D 加载ExcelSheet至控件中。

以上是关于C# winform中以excel的方式编辑表格的主要内容,如果未能解决你的问题,请参考以下文章

如何用C#的winform程序对Excel表格进行增删修查

如何用C#的winform程序对Excel表格进行增删修查

C# 在winform程序中使用excel表格

C# winform 中如何导入Excel

C# winform 中如何导入Excel

C#导入导出excel的问题