.NET 里操作Excel 出现有些列的数据取不到的问题

错误重现:

-----------------------------------------------------------------------

在导入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 就可以解决了,我个人的实践证明这个方法是不可行的;解决办法是 设置列的格式为文本格式,你只需要在添加的前面增加一个“’”就可以了,显示出来的就是文本样子了,其实你在添加到单元格的时候都在前面添加一个“’”就可以了!

posted @ 2014-04-15 10:40  尹成亮  阅读(429)  评论(0编辑  收藏  举报