导入Excel部分数据导入不了的原因及处理

本文解析了使用C#和Microsoft.Jet.OleDb.4.0将Excel导入到DataSet时遇到的数据丢失问题。主要原因是Excel驱动程序会根据前8行来推测每列的数据类型,若存在混合数据类型,可能导致部分数据被误判为空。文章提供了解决方案,包括更改数据格式和使用不同驱动程序。

  用C#将一个EXCEL导入到DATASET中(使用Microsoft.Jet.OleDb.4.0),但是读出来的时候发现有些数据没有导入,不同的EXCEL情况也不一样,有的EXCEL是纯数字没有导入进去,有的是纯字符没有导入进去,有的整个列都没数据。

 

原因及处理办法:
  Excel驱动程序读取指定源中一定数量的行(默认情况下为 8 行)以推测每列的数据类型。如果推测出列可能包含混合数据类型(尤其是混合了文本数据的数值数据时),驱动程序将决定采用占多数的数据类型,并对包含其他类型数据的单元返回空值。(如果各种数据类型的数量相当,则采用数值类型。)

  当前8行为空时,整个列都将变为空值。

  采用“Microsoft.ACE.OLEDB.12.0”读取xlsx则不会出现由于列前几行是空白而后面有数据不能导入的问题。

  所以,务必设置好数据的格式,当一列既有数字又有字符时,应把数字转换成字符格式(前面加单引号'),以避免数据丢失。

转载于:https://www.cnblogs.com/ToddLai/archive/2012/11/27/2790541.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值