错误重现:
-----------------------------------------------------------------------
在导入Excel读取数据时,其中的一个字段保存的值有如下格式:"2011072014","20110Aad10","25124Adfa","例子asdfadf" 这样的 混合了 "字母/数字/中文"数据,在Excel表格中的前 8条 或 前 8+ 条数据中的 这个列中的数据都是 由纯数字组成的,如"2011072012","2011072013","2011072014",到了大于8行的时候的该列的数据组成变成了 数字+中文 + 字母的组合,这样就会出现取不到该列值的问题
错误原因:
-----------------------------------------------------------------------
Excel读取数据列的格式 是按照每一列前8个数据的类型来判断读写时的类型的。比如前8个数据有3个是字幕,5个是数字,那么这一整列都是以数字型来读的,类型最多的那么不管第8条之后是什么类型,都当作这个类型来读取,那些字母都读不了。
解决办法:
-----------------------------------------------------------------------
网上搜索到在读取Excel时,设置:"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=1;'";
设置这个 IMEX=1 就可以解决了,我个人的实践证明这个方法是不可行的;解决办法是 设置列的格式为文本格式,你只需要在添加的前面增加一个“'”就可以了,显示出来的就是文本样子了,其实你在添加到单元格的时候都在前面添加一个“'”就可以了!
最后一列为空 但是还是会读出来
解决办法
鼠标放在第一行最后一列 ctrl+a 清除格式
然后在ctrl+a选中整个表格 然后清楚格式
格式- 清除 - 格式
为啥这样弄 我也不知道