Excel导入时数字文本无法识别的解决方案

在导入Excel时,会有一个非常有趣的现象,就是数字的识别问题,当Excel中的某一列同时存在纯文本列与纯数字列时,非常有可能出现文本能导入而数字无法导入或者数字能导入而文本无法导入,本人经过多次试验发现,主要在于Excel驱动的问题。
常规情况下,我们以如下方式操作Excel:

string conn = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =" + filename + ";Extended Properties=Excel 8.0";
OleDbConnection thisconnection = new OleDbConnection(conn);
thisconnection.Open();

这种情况下,极易出现数字或文本无法识别的问题,主要是当Excel第一行为数字或文本时,系统会默认以下所有行都是同一种数据形式,而出现非该类数据时,无法进行强行转换最终导致数据丢失,要解决此问题,只需要连接字符串上,稍微进行改动即可:

string conn = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =" + filename + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
OleDbConnection thisconnection = new OleDbConnection(conn);
thisconnection.Open();

其中:

HDR=YES     有两个值:YES/NO,表示第一行是否字段名,默认是YES,第一行是字段名   
    
IMEX=1     解决数字与字符混合时,识别不正常的情况.

posted @ 2008-10-15 10:19  快乐  阅读(638)  评论(0编辑  收藏  举报