c#如何实现对表格(excel)的增删改查?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#如何实现对表格(excel)的增删改查?相关的知识,希望对你有一定的参考价值。

一、首先处理好数据库连接字串

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连接进行查询时,依然会查询到这条空数据。
参考技术A

C# 操作Excel分很多种方法,有COM,有ODBC,但是如果你要更灵活的操作,建议使用第三方库,这里推荐几个:

1、NPOI

优点:开源,你可以到npoi的git镜像下载源代码来看;

缺点:如果使用普通接口,在Excel比较大的情况下可能造成内存溢出(当然有解决方案,具体就去看文档吧);

2、OpenXML

优点:微软出的,比较官方,和现在的offce格式兼容性比较好而且也开源,具体可以到Open-XML-SDK查看;

缺点:只支持 Excel 2007之后版本,而且需要对文件格式比较了解;

3、aspose.cells

优点:封装的比较好,内存处理上比npoi和openxml要好些,接口简单易用;

缺点:收费,免费版会在生成的 Excel 中写入 Aspose 标志;

4、自己解析格式

优点:更灵活,想干啥干啥;

缺点:要对excel格式了解的比较多,比较麻烦。

参考技术B office现在有新加的开发技术,vsto,就是基于c#的,虽然还是比较冷门,但是很多时候感觉比vba顺手。具体可以找刘永富老师的教程 参考技术C

直接用Excel的类库来操作的话要容易的多,free spire.xls for .net这个免费Excel类库,中文站有很多教程示例可以参考,写得都比较详细

vue实现对表格数据的增删改查

http://www.cnblogs.com/xumengxuan/p/7144580.html

 

原文地址: https://www.xiabingbao.com/vue/2017/07/10/vue-curd.html

以上是关于c#如何实现对表格(excel)的增删改查?的主要内容,如果未能解决你的问题,请参考以下文章

c#中怎么实现表的增删改查?

vue-实现对数组的增删改查

vue实现对表格数据的增删改查

ssm表格形式的增删改查点击修改按钮获取修改时间

java swing怎么通过按钮实现对表格的增删改查操作

【JPA】联表的增删改查(一)many to many