关于导入excel报错的处理(xls,xlsx)

                                              关于导入excel报错的处理(xls,xlsx)

最近在做一个将excel导入到dataGriview中的小功能在做的过程中遇到以下问题:

链接excel的链接串是这样写的

string strConnection = "Provider=Microsoft.JET.OLEDB.4.0;Data Source = " + strFileName + ";Extended Properties = Excel 8.0";

 

这样写连接串导入*xls时一切顺利,当我导入*xlsx文件时报这样一个错误:“System.Data.OleDb.OleDbException:外部表不是预期的格式”;

于是上网搜索,发现要想导入*xlsx的文件,需要更改下链接字符串:

更改后的连接串如下:

string strConnection="Provider=Microsoft.ACE.OLEDB.12.0;Data Source = " + strFileName + ";Extended Properties = Excel 12.0";

将JET改成了ACE,把4.0和8.0改成了12.0。改完测试下,这样导入*xlsx文件顺利导入。心中有小欢喜。暗暗高兴,这么容易就被搞定了,后来运行再

测试下看是否兼容*xls文件,糟糕的事情出现了,报错了。无语,当时心里就想微软什么破技术,连个这个都不能兼容。后来继续上网搜想找到一个方法

可以兼容xls和xlsx的。但搜了半天没有找到更好的办法。所以只有判断下打开的excel文件(判断后缀名)(xls是链接一个串,else链接高版本的串);这样以来问题解决了

。特写出来分享下,如果有好的方法,望指教。谢谢大家。

posted @ 2014-07-03 17:00  想念熊小米  阅读(1419)  评论(0编辑  收藏  举报