.NET 里操作Excel 出现有些列的数据取不到的问题
作者:朱尚 / 日期:2014-01-20 / 分类:Asp.Net / 浏览:1345
错误重现:
-----------------------------------------------------------------------
在导入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选中整个表格 然后清楚格式

格式- 清除 - 格式

为啥这样弄 我也不知道

上一篇:< script runat=server>、<%%>和<%#%>的区别
下一篇:Asp.net中的ViewState用法
本文标签: Excel 数据取不到
本文链接:http://www.banzhuan.net/detail/90