使用ado访问excel中的数据

摘要:
所以在配置链接字符串的时候需要注意,stringconnString=@"Provider=Microsoft.Jet.OLEDB.4.0;ExtendedProperties=Excel8.0;DataSource=C:UsersBoBoDesktopstudent.xlsx";中的Provider配置时需要修改对应的引擎版本。返回数据集returnds;关闭链接oleDbConnection.Close()总结03和07及以上版本的引擎不同,03是Microsoft.Jet.OLEDB.4.0,07及以上是Microsoft.ACE.OLEDB.12.0。还发现一个小差别就是Microsoft.Jet.OLEDB.4.0引擎的Excel文档行索引从1开始,而Microsoft.ACE.OLEDB.12.0的行索引从0开始。但是经过我是用4.0的版本操控excel2013也能够行。说明,DataSource为excle文件的路径。

【1】链接数据源(excel文件)

(1)配置链接字符串:

     string connString = @"Provider = Microsoft.Jet.OLEDB.4.0; Extended Properties = Excel 8.0; Data Source = C:UsersBoBoDesktopstudent.xlsx";
(2)创建链接对象:
     OleDbConnection oleDbConnection = new OleDbConnection(connString);

【2】打开链接对象

     oleDbConnection.Open();

【3】创建adpter和dataset对象并且填充到数据集中

       string sql = "select * from [Student$]";//和sqlserver查询语句几乎差不多,就是在表名上需要加上[表名$]
       OleDbDataAdapter da = new OleDbDataAdapter(sql, oleDbConnection);
       DataSet ds = new DataSet();
       da.Fill(ds);
【4】返回数据集
	return ds;
【5】关闭链接
     oleDbConnection.Close()
总结
03和07及以上版本的引擎不同,03是Microsoft.Jet.OLEDB.4.0 ,07及以上是Microsoft.ACE.OLEDB.12.0 。
还发现一个小差别就是Microsoft.Jet.OLEDB.4.0引擎的Excel文档行索引从1开始,而Microsoft.ACE.OLEDB.12.0 的行索引从0开始。
所以在配置链接字符串的时候需要注意,
 string connString = @"Provider = Microsoft.Jet.OLEDB.4.0; Extended Properties = Excel 8.0; Data Source = C:UsersBoBoDesktopstudent.xlsx";
中的Provider配置时需要修改对应的引擎版本。但是经过我是用4.0的版本操控excel2013也能够行。说明,Data Source为excle文件的路径。 
【4】返回数据集
	return ds;
【5】关闭链接
     oleDbConnection.Close()
总结
03和07及以上版本的引擎不同,03是Microsoft.Jet.OLEDB.4.0 ,07及以上是Microsoft.ACE.OLEDB.12.0 。
还发现一个小差别就是Microsoft.Jet.OLEDB.4.0引擎的Excel文档行索引从1开始,而Microsoft.ACE.OLEDB.12.0 的行索引从0开始。
所以在配置链接字符串的时候需要注意,
 string connString = @"Provider = Microsoft.Jet.OLEDB.4.0; Extended Properties = Excel 8.0; Data Source = C:UsersBoBoDesktopstudent.xlsx";
中的Provider配置时需要修改对应的引擎版本。但是经过我是用4.0的版本操控excel2013也能够行。说明,Data Source为excle文件的路径。

免责声明:文章转载自《使用ado访问excel中的数据》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇VirtualBox 在Win10上的蓝屏问题MM32初识(兼容STM32)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

springboot多数据源使用EntityManager

多数据源使用jpa和em,要么报错使用默认的数据源报错找不到表,要么就是报错没有这样的实体,debug调试使用的还是第一个EM。被这个问题困扰了很久,记录记录解决方法:entityManagerFactorySecondary指的是springboot项目中的第二个数据源,此处表示导入第二个数据源的实体管理器 @PersistenceContext(uni...

数据库正常运行,突然变慢的解决思路

  分类: Oracle 数据库正常运行,突然变慢的解决思路: 1、查看数据库版本(select * from v$version) 2、查看操作系统的进程(top,ps -ef) 3、查看操作系统的IO情况(sar 1 10) 4、制作awr报表,查看报告 在报告中 : Event Waits %Time -outs Total W...

kettle作业(job)调用转换,设置变量,写日志到数据库中【转】

首先建立转换:从数据库表到日志 表输入的设置:   日志设置:   新建job:     转换选择刚才建好的输出日志转换。变量设置如下: 此ID就是转换中的${ID},执行job,可以看到控制台输出日志结果:   黑色字体部分中只写出了id=1的一条记录。   最后补充,将转换的日志写到数据库中:打开转换>ctrl+t>日志选项...

Excel计算时间差(精确到分钟、秒)

Excel计算时间差(精确到分钟、秒) 2017年10月19日 17:59:21 selffight 阅读数 9682 设置单元格格式为常规,时间形式为“2017-9-28 18:14:49” 精确到分钟:ABS(J1-K1)*1440 或者INT(K1-J1)*1440 精确到秒:ABS(J1-K1)*1440*60...

复制MySQL数据库A到另外一个MySQL数据库B(仅仅针对innodb数据库引擎)

方案一:(不用太大的变化my.ini文件) copy 原数据库A中的   数据库(database)  ib_logfile1  ib_logfile0   ibdata1; 关闭目的数据库B;  备份目的数据库B中的  ib_logfile1  ib_logfile0   ibdata1 三个文件,防止更改后不能使用数据库; 将copy 来的原数据库A...

关于.NET大数据量大并发量的数据连接池管理 Virus

首先声明,本人以前做的都是小应用,还没有设计过百万、千万数据量的应用,并发量上万的应用,很多时候都是Applicatiion Server和DB Server在一台机器,或者将DB Server分离出来,单独在一台机器。由于最近的工作需要,故产生很多疑问,想要和大家一起探讨,向大家学习,希望大家不吝赐教,感谢大家的参与。 首先提一下本文的需求来源和具体的...