您的位置:首页 > 编程语言 > C#

C#连接excel的方法与注意事项

2010-12-15 10:04 232 查看
连接方法:
C#连接Excel的方法与连接Access的方法类似,同样可以使用OldDBConnection,如下:

String excelPath = "你的Excel文件绝对路径";

ConnectionString = @"Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + excelPath + ";" +

"Extended Properties='Excel 8.0;HDR=NO;IMEX=1';";

解释一下其中的参数:

Provider就跟Access 的一样了,置顶数据源类型

Data Srource,直数据源绝对路径

Extended Properties 里面几个参数为Excel的拓展参数。其中:

Excel 8.0 针对EXCEL 2000 或更高版本;Excel 5.0 FOR EXCEL 97

HDR 表示第一行是否为字段名。Yes为首行字段,No为无首行

IMEX 表示对同一列中有混合数据类型的列,是统一按字符型处理,还是将个别不同类型的值读为DBNULL。1为混合,2为不混合

数据库连接好后就是查询,查询的方法跟Asscess一样只是Excel的表面后面都需要加上一个’$'字符.比如:

DataTable tempDataTable = new DataTable();

String strSql = "SELECT * FROM [sheet1$]";

DataAdapter da = new OleDbDataAdapter(strSql, myConnection);

da.Fill(tempDataTable);

到这里,就完成了C#连接Excel和查询Excel数据表。

二个注意事项
  接着说二个要注意的事情。

Extended Properties容易写成如下:

Extended Properties=Excel 8.0; HDR=Yes;IMEX=1;

网上也很多是写成这么的,如果是写成上面形式,那么就会报错:

System.Data.OleDb.OleDbException: 找不到可安装的 ISAM。

如果不加上IMEX=1;,常常会出现如果某列第二行为空,那么改列的所有数据都为空的情况。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: