对于Excel文件,想必大家也都知道这个的重要性,无论是做哪种语言的开发,都少不了对Excel文件的操作;

后面会用三种方式用来读取Excel,用来满足不同的项目需求;

第一种方式就是本文所要讲的OleDb的方式,此方式比较简单,而且也不需要引用其他的第三方DLL,读取速度也还可以,但是对于一些其他的细节操作,可能需要读取到数据之后再直接对数据源进行优化;

OleDb连接方式,使用ADO.NET打开来获取Excel的数据源;

这里也再简单介绍下链接字符串中各个字段的意思:

string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + excelPath + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\"";

Provider是用来提供程序连接到Excel;Data Source是要读取的Excel文件;Extended Properties 是设置 Excel 的属性;HDR用来指示第一行是否为表头;IMEX表示对文件操作的各种模式(0:写模式,1:读模式)


实现功能:

使用Oledb将Excel文件中的数据显示到dataGridView
使用Sql语句添加数据到Excel

开发环境:

开发工具:Visual Studio 2013
.NET Framework版本:4.5

实现代码:

private void GetExcel()
{//实例化一个datatable用来存储数据DataTable dt = new DataTable();//指定excel所在路径string excelPath = "d:\\1.xlsx";//Offic2007以上连接字符串string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + excelPath + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\"";//Offic2007以下连接字符串if (excelPath.ToLower().EndsWith(".xls")){connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + excelPath + ";" + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";}OleDbConnection OleConn = new OleDbConnection(connStr);OleConn.Open();//返回excel文件的结构信息DataTable dtSheet = OleConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);//取第一个sheet页的数据string sql = string.Format("SELECT * FROM [{0}]", dtSheet.Rows[0]["TABLE_NAME"]);OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);OleDaExcel.Fill(dt);//展示到页面dataGridView1.DataSource = dt;//关闭链接OleConn.Close();
}

到这里,读取的代码就完成了,这时候肯定有朋友在想,既然可以用ADO.NET去做查询,那是否可以去做更新或者插入呢?结果当然是可以的了,按照我们上面所介绍的,需要先将IMEX的值设置为0,即可写模式,如下:

string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + excelPath + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=0\"";
然后就可以跟操作数据库一样直接写Insert语句了,部分代码如下:
string sql = string.Format("insert into [{0}] values ('赵六','女','23')", dtSheet.Rows[0]["TABLE_NAME"]);
OleDbCommand cmd = new OleDbCommand(sql, OleConn);
cmd.ExecuteNonQuery();

由简入繁,拿来即用

后续精彩,持续关注

欢迎关注公众号: dotnet编程大全

技术群: 需要进技术群的添加小编微信mm1552923,备注:加群;

C# 操作Excel文件之OleDb方式相关推荐

  1. C#使用oledb操作excel文件的方法

    本文实例讲述了C#使用oledb操作excel文件的方法.分享给大家供大家参考.具体分析如下: 不管什么编程语言都会提供操作Excel文件的方式,C#操作Excel主要有以下几种方式: 1.Excel ...

  2. C#在客户端和服务端操作Excel文件

    一.在客户端把数据导入到Excel文件步骤 1.创建Excel application对象,打开或生成Excel文件 //服务端创建StringBuilder对象     System.Text.St ...

  3. C#操作Excel文件(转)

    摘要:本文介绍了Excel对象.C#中的受管代码和非受管代码,并介绍了COM组件在.net环境中的使用. 关键词:受管代码:非受管代码:Excel对象:动态连接库 引言 Excel是微软公司办公自动化 ...

  4. C#操作Excel文件暨C#实现在Excel中将连续多列相同数据项合并

    C#操作Excel文件(读取Excel,写入Excel) 看到论坛里面不断有人提问关于读取excel和导入excel的相关问题.闲暇时间将我所知道的对excel的操作加以总结,现在共享大家,希望给大家 ...

  5. csv文件怎么转成excel_Python操作Excel文件(1):花式大师pyexcel

    本文共2900余字,预计阅读时间12分钟,本文知乎连接:Python操作Excel文件(1):花式大师pyexcel,本文同步发布于silaoA的博客和微信公众号平台. 关注学习了解更多的Cygwin ...

  6. Java生成和操作Excel文件

    JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过 ...

  7. xlrd和xlwt操作Excel文件

    DAY8 xlrd和xlwt操作Excel文件 一.xlrd获取文件内容 1.打开excel文件 import xlrd wb = xlrd.open_workbook('files/data1.xl ...

  8. C#操作Excel文件

    C#操作Excel文件 前言 好久没更新博客了,趁着最近经常需要使用到Excel,就随手更新下博客把!由于之前一直使用的是Microsoft.Office.Interop.Excel,但是呢,在使用的 ...

  9. C# 使用NPOI 操作 Excel 文件

    C# 使用NPOI 操作 Excel 文件 使用 创建 Excel 文件 创建 XLS 文件 创建 XLSX 文件 合并单元格 设置单元格格式 对齐 字体 边框 填充 保护 数字 下拉框 直接传递下拉 ...

最新文章

  1. 你知道怎么分库分表吗?如何做到永不迁移数据和避免热点吗?
  2. 【图像处理opencv】_图像边缘
  3. 马尔科夫链和马尔科夫链蒙特卡洛方法
  4. 使用INNER JOIN ON 多表关联查询,获取指定用户下指定权限的资源SQL:
  5. 他是Facebook广告投入费用过亿的独立站卖家
  6. 三条中线分的六个三角形_三角形中的边长和线段(下)
  7. 防火墙 规则与链的分类
  8. CVPR2021中的目标检测和语义分割论文汇总
  9. 给一张表加一个自动编号字段_Python办公自动化|从Word到Excel
  10. c语言 程序段 数据段,C程序段(代码段、数据段、BSS段以及堆栈)的详解
  11. 三农数据(1996-2020)一:农村综合、乡村人口、文化程度、农村机械等
  12. Egret + P2物理引擎入门教程
  13. 代码不规范,亲人两行泪——DTO
  14. 如何计算置信区间,RMSE均方根误差/标准误差:误差平方和的平均数开方
  15. ROS创建launch文件
  16. 数据结构实验 7-18 新浪微博热门话题 (30分)
  17. Python对文件(外存)和内存的操作
  18. 使用Nginx中遇到的一个小问题思考
  19. LeetCode hot-100 简单and中等难度,51-60.
  20. spring-aop-@Aspect详细用法

热门文章

  1. python【面向对象(类和对象)】
  2. android 使用WebView 支持播放优酷视频,土豆视频
  3. 通信原理——MIMO
  4. kubernetes 联邦搭建(kubefed)
  5. EHR系统如何帮助企业赢得人才争夺战
  6. altium designer添加原理图库和PCB封装库
  7. 超高精度PID控制器的特殊功能(4)——分程控制功能及其应用
  8. KTC M27P20 怎么样
  9. 23种设计模式初理解
  10. 【亲子手工】创建圣诞镇