现在的位置: 首页 > 综合 > 正文

C#与EXCEL相关

2014年02月08日 ⁄ 综合 ⁄ 共 781字 ⁄ 字号 评论关闭

2.找不到可安装的ISAM.

针对1的问题,我加了IMEX=1之后就出现2的问题了.如果Excel 8.0修改为Excel 11.0也会出现这个问题(对于Excel 97以上版本都用Excel 8.0).

连接字符串中(Extended Properties='Excel 8.0;IMEX=1;')缺少单引号时会出现上面的错误。

1.数据丢失

将EXCEL数据导出的时候如果同一列数据中既有文字,又有数字!读取时一列中要么文字丢失只剩下数字,要么数字丢失,只剩下文字,这是由第一行的数据类型决定的。出现这种问题是由于数据类型不统一造成的。原来的连接字符串为 string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Path + "; Extended Properties=Excel 8.0;";查阅资料后问题解决:string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Path + ";Extended Properties='Excel 8.0;IMEX=1;'";(注意单引号,否则出现错误:找不到可安装的ISAM.)

加的参数解释:

HDR=YES        有两个值:YES/NO,表示是否把EXCEL中第一行当作表头处理,默认是YES,第一行会被认为是表头出现在DATATABLE中,否则把EXCEL中第一行当作数据处理;

IMEX=1        解决数字与字符混合时,识别不正常的情况.IMEX有3个值.

EXCEL驱动会对EXCEL前8行的数据类型自动识别,如果前8列数据类型一样,则把整个列的数据类型定义为该类型,如果8行之后,出现不同类型的数据,则无法导入.此时,即使加了IMEX=1也是无效的.

目前可行的办法是修改数据源,使其前8行数据类型不同。

抱歉!评论已关闭.