现象:通过ODBC往数据库中导入Excel表,或者是在程序中使用ODBC访问Excel表时,可能某些行会产生数据类型不符的错误。
原因:Microsoft Excel ODBC 驱动程序默认扫描前8行的数据来确定每列中的数据类型。Microsoft Excel ODBC 驱动程序使用以下注册表项中TypeGuessRows键值来确定扫描多少行确定数据类型:
- Excel 97
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Jet/3.5/Engines/Excel - Excel 2000 及更高版本
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Jet/4.0/Engines/Excel
解决方法:
- 更改TypeGuessRows键值,该值取值范围0-16,为0时表示扫描所有行数据。
- 手动将Excel表第一行数据改为字符型,例如为数值16时,改为a16,以使ODBC使用字符类型来访问所有数据。