由于工作的需要,最近做了一个读取Excel文件与CSV文件关联的数据处理程序,主要用于PDA采集数据的后期处理。

当时有两种方法可用来读取Excel数据,一种是引用Excel的类库,另一种是将其作为扩展数据文件,用ADO连接方式来处理。从性能、工作量等多个方面考虑,我毫不犹豫地选择了后面的方案来进行工作。

一、问题描述:

工作很顺利地便完成了,心底里有一点点高兴,对自己来讲,这种东西太小儿科化了(呵呵,有点自夸了,别当真^_^)。可是后面的过程中却遇到了较大的麻烦:凡是在Excel中打开的xls文件,如果单元格错误检查存在问题,那么其中的数据读取出来便是空(null)。具体体现在如果这个列为数值型,如果改为文本存储方式或其它方式,那么这些列的数据便读取不到。

二、问题分析:

经过多次测试发现问题都不能解决,除非修改列存储方式,但是这种工作量实在太大,根本没有可行性。冷静下来思考了一下,我估计是驱动程序的问题,便将连接方式如下,可是却出现“找不到可安装的ISAM错误”,实在是比较郁闷。

string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + ";" + "Extended Properties='Excel 11.0;'";

原来的连接方式为:

string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + ";" + "Extended Properties='Excel 8.0; '";

说明:Excel8.0 对应office 2000,Excel 11.0对就office2003

三、问题解决:

后来经过搜索与分析,将连接方式改成如下,问题解决了:

string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + ";" + "Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";

成功原因:

参数说明: Microsoft Jet 提供程序用于连接到 Excel 工作簿。在以下连接字符串中,Extended Properties 关键字设置 Excel 特定的属性。“HDR=Yes;”指示第一行中包含列名,而不是数据,“IMEX=1;”通知驱动程序始终将“互混”数据列作为文本读取。

注意http://msdn2.microsoft.com/zh-cn/library/ms254978.aspx 默认情况下,系统认为 Excel 数据源的第一行包含可用作字段名的列标题。如果不是这种情况,则必须将该设置关闭,否则,第一行数据将会“消失”,而被用作字段名称。这可通过向连接字符串的扩展属性添加可选的 HDR= 设置来完成。默认情况下(无需指定)是 HDR=Yes。如果没有列标题,则需要指定 HDR=No;提供程序将字段命名为 F1、F2 等等。因为扩展属性字符串现在包含了多个值,所以必须用引号单独包起来。

[转]数据库连接方式读取不到Excel数据值的解决方法相关推荐

  1. python读取串口数据保存到mysql数据库_Python3读取Excel数据存入MySQL的方法

    Python是数据分析的强大利器. 利用Python做数据分析,第一步就是学习如何读取日常工作中产生各种excel报表并存入数据中,方便后续数据处理. 这里向大家分享python3如何使用xlrd读取 ...

  2. Java读取和解析Excel数据:基于Apache POI(二)

    Java读取和解析Excel数据:基于Apache POI(二) 假设附录1文章中的test.xls是对员工的考勤记录表.需要根据这张excel表统计员工的加班时间,那么需要重点关注第五列的下班时候的 ...

  3. navcat导入mysql bak_navcat excel数据导入mysql的方法

    navcat excel数据导入mysql的方法 先navcat导出 xls格式 然后把数据复制到往这个xls里 (按照这个xls格式) 然后导入mysql就行了 如果导入的过程无法识别excel里的 ...

  4. oracle将excel导入,Win7系统把Excel数据导入oracle的方法(图文)

    今天本教程小编分享Win7系统把Excel数据导入oracle的方法,操作数据库时,将Excel的数据导入到oracle中是非常常见的方式,但是有很多新手用户不知道Win7系统怎么把Excel数据导入 ...

  5. oracle+excel转txt,Excel数据导入Oracle的方法

    Excel数据导入Oracle的方法 最近同事遇到了每天手工导入Excel数据到Oracle的问题,他目前的操作是使用PL/SQL Developer中的复制粘贴方法,这样每天都需要进行手工的操作,很 ...

  6. 机器学习数据倾斜的解决方法_机器学习并不总是解决数据问题的方法

    机器学习数据倾斜的解决方法 总览 (Overview) I was given a large dataset of files, what some would like to call big d ...

  7. 模板引擎不关心内容之——art-template,碰见的同步与fs.readFile异步以及函数回调问题的描述,针对fs的readfille读取文件时,返回不了异步函数返回值的解决方法

    模板引擎不关心内容 art-template art-template不仅可以在浏览器使用,也可以在node中使用 npm install art-template该命令在哪执行就会把包下载在哪里,默 ...

  8. office excel无法打开超链接解决方法

    office文档超链接打不开提示"由于该计算机受到限制,本次操作已被取消.请与您的系统管理员联系",这是怎么回事呢?下面为大家带来了4种解决方法哦,一个是用cmd命令解决的,一个是 ...

  9. excel转java 常量_【转】八种常见Excel错误提示及解决方法

    Excel经常会显一些错误值信息,如#N/A!.#VALUE!.#DIV/O!等等.出现这些错误的原因有很多种,最主要是由于公式不能计算正确结果.例如,在需要数字的公式中使用文本.删除了被公式引用的单 ...

  10. Windows Server 2008下Microsoft Office Excel 不能访问文件解决方法

    Windows Server 2008下Microsoft Office Excel 不能访问文件解决方法 在VS2008 中写了一个EXCEL的导出功能的东西,但在Windows Server 20 ...

最新文章

  1. DL之LSTM:基于《wonderland爱丽丝梦游仙境记》小说数据集利用LSTM算法(层加深,基于keras)对单个character字符预测
  2. 对联一副,勉励奋斗在网络事业上的兄弟们
  3. 作者:龚南宁,数据堂(北京)科技股份有限公司对外合作部副总监
  4. 11 月全球 Web 服务器调查报告:nginx 表现最佳
  5. 如何让自己时刻冷静的方法_睡前如何自己丰胸 健康有效方法 成就窈窕淑女
  6. Hbase Cellutil源码
  7. 北漂周记--第5记--拼命编程
  8. Android组件化开发实践
  9. 《可信计算的研究与发展》;C-Rank:一种Deep Web数据记录可信度评估方法
  10. 知名公司GitHub官网
  11. 使用PGP加密你的文件
  12. 如何从技术上实现「朋友圈@微信官方头像添加圣诞帽」?
  13. Error:(292, 40) java: -source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符) ........
  14. 【创作中心】自定义模板的使用
  15. 用线程加锁模拟红绿灯
  16. shell检测连接数最多的IP
  17. 基于Android的车位共享系统的设计
  18. 在网易做游戏美术设计师是种什么体验?
  19. 壹佰智慧门店V3 v3.0.89
  20. 面向对象程序设计(Java)实验

热门文章

  1. ArcGIS 城市生活区用地适宜性评价(一)
  2. Node安装模块命令
  3. Springmvc 应用Mongodb分页实现
  4. android BaseAdapter多布局缓存
  5. Android TV开发总结【适配】
  6. 自动按键 回车 变成_【按键大扫荡】驾驶员的“眼”
  7. 服务器的作用及用途,服务器的作用和用途是什么
  8. 超级计算机燕 排名,特斯拉超级计算机算力全球第五,展现无人驾驶领域野心...
  9. Vue.use 写多个_西双版纳能写立项报告收费公司
  10. 微信小程序跳过第三方的_微信小程序工具 第三方平台