由于目前,C#和VBnet都不支持OLE技术(参见微软支持中心Info:304562),,所以只有使用WebBrowser控件来完成此功能。(以下方法参见微软支持中心Howto:304662)
1、右击工具箱,选择自定义工具箱,添加COM组件,选择“Microsoft Web 浏览器”(对应文件是\winnt\system32\shdocvwdll),确定。在工具箱中将会出现文本为Explorer的WebBroser控件图标。
2、在Form1中添加WebBrowser控件。(对象名却省是axWebBrowser1)
3、假定要打开的excel文件是: c:\axls。
string strFileName = @"c:\axls";
Object refmissing = SystemReflectionMissingValue;
axWebBrowser1Navigate(strFileName, ref refmissing , ref refmissing , ref refmissing , ref refmissing);
值得注意的是用WebBrowser控件不支持菜单合并,也就是说无法把Excel表的菜单带入到我们的程序中。这是相对于OLE实现方法的一大缺点。幸好提供了可以把工具栏添加进来的功能,通过工具栏可以进行许多Excel专有的 *** 作。
//下面这句可以将excel本身的工具调添加进来
axWebBrowser1ExecWB(SHDocVwOLECMDIDOLECMDID_HIDETOOLBARS, SHDocVwOLECMDEXECOPTOLECMDEXECOPT_DONTPROMPTUSER,ref refmissing , ref refmissing);
这涉及到Execl读取了。
1、建议先建一个类ExcelHelper,需要引用dll,不想麻烦的话直接用微软的的MicrosoftOfficeInteropExcel就行,当然了,推荐NPOI,开源的,百度下载。参考一些常用写法,在这个类里写好读取Excel的方法,比如ExcelToDataTable(),将Excel读出来的数据转成DataTable型变量。
后续有更多Execl相关的 *** 作的话,都在这个类里实现,方便移植。
2、导入时给DataGridView赋值就行。调用ExcelHelperExcelToDataTable()把Excel内容对应的DataTable取出来,然后赋给DataGridView的DataSource属性。
你的代码里或者excel里有CBTable这个关键字?
你需要测试代码,他的思路是先根据excel的表结构创建sqlserver里相同的表结构,然后批量导入,你可以调试看一下创建表的sql语句是否正确
可以帮改
以上就是关于C# winform中以excel的方式编辑表格全部的内容,包括:C# winform中以excel的方式编辑表格、C# WinForm 用到DataGridView控件,怎么将已经生成好的excel文件导入到DataGridView、用winform将excel表数据导入sqlserver数据库,我在网上查了相关代码,调试过程中遇到这个问题大牛求解答等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)