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

连接方法:

C#连接Excel的方法与连接Access的方法类似,同样可以使用OldDBConnection,如下:

  1. String excelPath = "你的Excel文件绝对路径";
  2. ConnectionString = @"Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + excelPath + ";" +
  3.             "Extended Properties='Excel 8.0;HDR=NO;IMEX=1';";

解释一下其中的参数:

  1. Provider就跟Access 的一样了,置顶数据源类型
  2. Data Srource,直数据源绝对路径
  3. Extended Properties 里面几个参数为Excel的拓展参数。其中:
    • Excel 8.0 针对EXCEL 2000 或更高版本;Excel 5.0 FOR EXCEL 97
    • HDR 表示第一行是否为字段名。Yes为首行字段,No为无首行
    • IMEX 表示对同一列中有混合数据类型的列,是统一按字符型处理,还是将个别不同类型的值读为DBNULL。1为混合,2为不混合

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

  1. DataTable tempDataTable = new DataTable();
  2. String strSql = "SELECT * FROM [sheet1$]";
  3. DataAdapter da = new OleDbDataAdapter(strSql, myConnection);
  4. da.Fill(tempDataTable);

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

二个注意事项

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

  1. Extended Properties容易写成如下:
    1. Extended Properties=Excel 8.0; HDR=Yes;IMEX=1;

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

    1. System.Data.OleDb.OleDbException: 找不到可安装的 ISAM。
  2. 如果不加上IMEX=1;,常常会出现如果某列第二行为空,那么改列的所有数据都为空的情况。
posted @ 2010-12-15 10:04  s80895304  阅读(1287)  评论(0编辑  收藏  举报