阿里妈妈,帮你实现网络赚钱梦,流量变成现金!
10-08
18

Oledb读取Excel单元格为空

给力技术 - 给您提供最新最全的Web资源
      自从接触到了aspose,npoi这些组件之后,我就很少用Oledb来操作Excel了,那些控件都很强大,不需要在客户机上安装excel。今天下午的时候同事向我反馈一个问题,有个asp.net网站的导入excel功能用不了了。我调试看了一下,发现是用oledb读取excel的,读到某个单元格时,得到的是DBNull值。调试了几次后大概知道原因了,可能是跟单元格的类型有关。后来实在没办法,马上改代码换用NPOI来读取excel,先把导入的问题解决掉。
      回来之后才上网查了下,确实是由于单元格类型的原因,这里有个分析得比较详细
      http://blog.csdn.net/luochengbang/archive/2008/02/29/2134390.aspx
      而且把excel的连接字符串中加上IMEX=1,也是没有效果,因为我之前的代码本来就加上了这个
      还得改注册表才能真正解决,不过我没试。。。用别的组件还比较好
      注册表是要改[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel]下的TypeGuessRows,将它的值改为0,这样就可以让excel不是以前8行来判断列的类型,而是检索所有行来判断。这样改的话效率会很差。。


文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
文章标签: c# oledb excel asp.net
网摘收录:
相关日志:
lsnail
回复回复lsnail[2010-08-30 07:07 PM | | | del]
NPOI读取较大文件时,会占用很多内存
回复来自 老狼 的评论 老狼 于 2010-08-30 11:25 PM 回复
大文件的我倒没试过
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 支持Gravatar头像.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.