在c#项目中导入Excel数据的时候,需要连接Excel的各个版本已满足需求,不得不做Excel各个版本的处理。
string fileExt = Path.GetExtension(excelPath);
string conn = "";
if (fileExt == ".xls")
{
conn = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =" + excelPath + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'";
}
else
{
conn = "Provider = Microsoft.ACE.OLEDB.12.0 ; Data Source =" + excelPath + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=1'";
}
03和07及以上版本的引擎不同,03是Microsoft.Jet.OLEDB.4.0 ,07及以上是Microsoft.ACE.OLEDB.12.0 。
还发现一个小差别就是Microsoft.Jet.OLEDB.4.0引擎的Excel文档行索引从1开始,而Microsoft.ACE.OLEDB.12.0 的行索引从0开始。