关于导入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链接高版本的串);这样以来问题解决了

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

关于导入excel报错的处理(xls,xlsx)的更多相关文章

  1. C# 导入EXCEL 报错外部表不是预期的格式错误 .

    错误经过:在读取Excel时,出现外部表不是预期的格式 错误原因1: 由于Excel 97-2003的连接格式与Excel 2010 的 不同造成. 以下是从网上摘抄原文 Excel “Externa ...

  2. C# 导入excel报错 :不是预期外部表

    错误原因:由于Excel 97-2003的连接格式与Excel 2010 的 不同造成. 解决方案1: 很多人换了2010后,问的最多的问题之一是2003里最经典的ADO中的“provider=Mic ...

  3. weblogic 12c下jxls导出excel报错Could not initialize class org.apache.poi.xssf.usermodel.XSSFVMLDrawing

    周一,开发反馈weblogic 12c下jxls导出excel报错,公司环境和UAT环境均报错,看日志如下: 2016-06-08 09:16:55,825 ERROR org.jxls.util.T ...

  4. java导出excel报错:getOutputStream() has already been called for this response

    对于java导出excel报错的问题,查了很多都说是在使用完输出流以后调用以下两行代码即可 out.clear(); out = pageContext.pushBody(); 但这也许是页面上输出时 ...

  5. Microsoft.Office.Interop.Excel 报错

    Microsoft.Office.Interop.Excel 报错 引用dll 在以下目录 C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop. ...

  6. maven项目引用时,导入类报错,选择两个项目同时执行Maven update

    maven项目引用时,导入类报错,选择两个项目同时执行Maven update springboot引入第三方jar,需要扫描时加@ComponentScan("第三方的包名") ...

  7. 导入项目报错:Type Java compiler level does not match the version

    1,导入项目报错一般是因为缺少jar包或者是jar包冲突 2,导入的jar包版本问题 3,环境需要重新修改,比如build path 中重新add libararies 遇到这种compiler环境问 ...

  8. Android无法删除项目+导入项目报错

    Android无法删除项目+导入项目报错 Android无法删除项目:关闭eclipse或关闭电脑,然后重启,继续删除就可以了 导入项目报错:右键–>配置–>中就可以看到了,更改一下就可以 ...

  9. 【MyEcplise】导入项目报错:Errors running builder 'JavaScript Validator' on project '项目名'. java.lang.ClassCastException

    导入项目报错:Errors running builder 'JavaScript Validator' on project '项目名'. java.lang.ClassCastException ...

随机推荐

  1. 利用tomcatserver配置https双向认证

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/luo201227/article/details/36897387 首先请保证已经安装好jdk,而且 ...

  2. java基础入门之数组循环初始化

    /* Name:数组循环化 Power by Stuart Date:2015-4-23 */public class ArrayTest02{ public static void main (St ...

  3. SQL2000 3核6核 CUP 安装SP4

    1.找到HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432node\Microsoft\MSSQLServer \MSSQLServer\Parameters\ 2.然后加入下面的 ...

  4. C# 串口调试助手源码

    本方法,禁用跨进程错误(做法不太好,但是对于单片机出身的人来说,好理解,能用就行). 基本功能: 1.点串口号的下拉菜单自动当前检索设备管理器的COM 2.发送模式可选,hex和string两种 3. ...

  5. python读取文件存到excel中

    用xlwt模块执行代码报下面的错 ValueError: column index (256) not an int in range(256) xlwt 模块看源码说最大列只支持255列,所以超过这 ...

  6. c的详细学习(5)数组

        到目前为止,前面介绍的都是属于基本类型的数据.除此之外,C语言还提供了一些更为复杂的数据类型,称为构造类型.数组就是最基本的构造类型.若要针对一批数据进行某种操作,采用数组是一种方便可行的方法 ...

  7. shell正则

    第五天 REGEXP:REGular EXPressionPattern: 正则表达式: Basic REGEXP:基本 Extended REGEXP:扩展 基本正则表达式: 字符匹配类:.: 任意 ...

  8. Nginix安装教程(Ubuntu)

    安装gcc g++的依赖库 #apt-get install build-essential #apt-get install libtool   安装 pcre依赖库 #sudo apt-get u ...

  9. 关于mysql使用索引的一个问题

    mysql一直号称是免维护的,但是我发现它往往连最表基本索引都不能自动维护,情景如下: 1.我用mysqldump导出一个大表longformh; 2.用mysql.exe导入到一个新库中: 3.查看 ...

  10. java深入探究07-jsp

    RequestDispatcher是web资源包装类<jsp:include>只能实现固定jsp文件名他可以翻译为:RequestDispatcher(filename).include( ...