62,243
社区成员




private String getConnString()
{
String connectionString = String.Empty;
if (excelFilePath != null)
{
//Excel版本不一样,连接字符串不一样
if (excelFilePath.EndsWith(".xls"))
{//Excel2003
connectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" + excelFilePath + "; Extended Properties=Excel 8.0";
}
else
{//Excel2007 up
connectionString = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source=" + excelFilePath + "; Extended Properties=Excel 12.0";
}
}
return connectionString;
}
以上代码我以前用过的代码可以解决你的问题。问题出在03,07版本的连接字符串不一样。如果你入坑不深,建议不要再用oledb操作excel,因为将来1.格式不好更改。2.dom操作会出现线程错误且很难处理。3.隐藏坑。
推荐使用openxml,这是处理07之后的office所使用的东西。是个趋势,刚开始可能比较难看懂,但是早晚得看。
不过,只是简单的插入excel数据的话oledb插入时类似于sql的插入语句还是比较好用的。只是oledb处理的文件个人感觉文件都很大,具体原因没研究过。
PS:如果openxml觉得太难,且工程要求不高的话可以用CLOSEdxml,这个用起来上手比较快。但是核心还是openxml