OLEDB 连接 Excel 丢失数据问题
在工作发现用OLEDB去连接Excel时会发现有些行的栏位会丢失尾部的数据。
上网查找,发现原因是因为OLEDB默认会以前8行的数据为基础判断,所以如果前面的数据长度不够长,会引起后面的数据会丢失。
解决方法:现在只能以修改注册表的方法解决。
【64位系统】
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Excel
【32位系统】
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel
将键值TypeGuessRows 修改为 0;
0是自动识别最大的行数以判断值的标准。
如果设置其它数值就是以这个数值的行数为标准,例如设置为1000,就是前1000行为标准。但是设置的值大了,会影响Excel的效能。所以建议为0。