在做批量导入时2003版本的Excel文件可以顺利导入,一般使用的连接语句如下:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/1.xls;Extended Properties='Excel 8.0;HDR=YES;IMEX=1'
但当导入Excel2007版本的文件时,即使将上面语句的版本从8.0改为12.0,问题依旧。
在网上查了很多,不论是注册各种组件,还是修复OFFICE都无法解决问题。
其实真正的原因是驱动不能再用Jet,而应该用ACE,所以正确的连接语句应该是:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:/1.xlsx;Extended Properties='Excel 12.0;HDR=YES;IMEX=1'
总结:Excel2003以及更低版本用Jet, 否则导入的Excel要转换成xls格式的,或则要转换xlsx格式的就要用ACE!