c#如何实现对表格(excel)的增删改查? 10
4个回答
展开全部
一、首先处理好数据库连接字串
Excel2000-2003: string connStr = "Microsoft.Jet.Oledb.4.0;Data Source='c:\test.xls';Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";";
Excel2007: string connStr = "Microsoft.Ace.OleDb.12.0;Data Source='c:\test.xlsx';Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=1\";";
其中:
HDR ( Header Row )设置:
若指定值为Yes,代表 Excel 档中的工作表第一行是栏位名称
若指定值为 No,代表 Excel 档中的工作表第一行就是资料了,没有栏位名称
IMEX ( IMport EXport mode )设置
当 IMEX=0 时为"汇出模式",这个模式开启的 Excel 档案只能用来做"写入"用途。
当 IMEX=1 时为"汇入模式",这个模式开启的 Excel 档案只能用来做"读取"用途。
当 IMEX=2 时为"连结模式",这个模式开启的 Excel 档案可同时支援"读取"与"写入"用途。
二、进行表格数据的查询、插入和更新:
(假设Excel文件text.xls中存在Excel表单tree,有2列分别为id,name)
1、查询
String sql = "select id, name from [tree$]";
或
String sql = "select id, name from `tree$`;
2、插入
String sql = "insert into [tree$] (id,name) values(1,'testname');
3、更新
String sql = "update [tree$] set name='name2' where id=1;
4、数据的删除
在OleDB的连接方式下,不可以使用delete from 语句来删除某表中的某一条记录。确切的说,在此模式下,将无法删除表中的记录。即使用update语句将所有的字段写成null,打开excel文件后依然会发现保留了该空行,而且在使用oleDB连接进行查询时,依然会查询到这条空数据。
Excel2000-2003: string connStr = "Microsoft.Jet.Oledb.4.0;Data Source='c:\test.xls';Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";";
Excel2007: string connStr = "Microsoft.Ace.OleDb.12.0;Data Source='c:\test.xlsx';Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=1\";";
其中:
HDR ( Header Row )设置:
若指定值为Yes,代表 Excel 档中的工作表第一行是栏位名称
若指定值为 No,代表 Excel 档中的工作表第一行就是资料了,没有栏位名称
IMEX ( IMport EXport mode )设置
当 IMEX=0 时为"汇出模式",这个模式开启的 Excel 档案只能用来做"写入"用途。
当 IMEX=1 时为"汇入模式",这个模式开启的 Excel 档案只能用来做"读取"用途。
当 IMEX=2 时为"连结模式",这个模式开启的 Excel 档案可同时支援"读取"与"写入"用途。
二、进行表格数据的查询、插入和更新:
(假设Excel文件text.xls中存在Excel表单tree,有2列分别为id,name)
1、查询
String sql = "select id, name from [tree$]";
或
String sql = "select id, name from `tree$`;
2、插入
String sql = "insert into [tree$] (id,name) values(1,'testname');
3、更新
String sql = "update [tree$] set name='name2' where id=1;
4、数据的删除
在OleDB的连接方式下,不可以使用delete from 语句来删除某表中的某一条记录。确切的说,在此模式下,将无法删除表中的记录。即使用update语句将所有的字段写成null,打开excel文件后依然会发现保留了该空行,而且在使用oleDB连接进行查询时,依然会查询到这条空数据。
展开全部
C# 操作Excel分很多种方法,有COM,有ODBC,但是如果你要更灵活的操作,建议使用第三方库,这里推荐几个:
1、NPOI
优点:开源,你可以到npoi的git镜像下载源代码来看;
缺点:如果使用普通接口,在Excel比较大的情况下可能造成内存溢出(当然有解决方案,具体就去看文档吧);
2、OpenXML
优点:微软出的,比较官方,和现在的offce格式兼容性比较好而且也开源,具体可以到Open-XML-SDK查看;
缺点:只支持 Excel 2007之后版本,而且需要对文件格式比较了解;
优点:封装的比较好,内存处理上比npoi和openxml要好些,接口简单易用;
缺点:收费,免费版会在生成的 Excel 中写入 Aspose 标志;
4、自己解析格式
优点:更灵活,想干啥干啥;
缺点:要对excel格式了解的比较多,比较麻烦。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
office现在有新加的开发技术,vsto,就是基于c#的,虽然还是比较冷门,但是很多时候感觉比vba顺手。具体可以找刘永富老师的教程
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接用Excel的类库来操作的话要容易的多,free spire.xls for .net这个免费Excel类库,中文站有很多教程示例可以参考,写得都比较详细
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询