阿里妈妈,帮你实现网络赚钱梦,流量变成现金!
自从接触到了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行来判断列的类型,而是检索所有行来判断。这样改的话效率会很差。。
发表评论
上一篇:
下一篇: 
文章来自:
文章标签:
网摘收录:
回复
|
|
]