access数据库引擎在读取excel数据时默认根据前8个数据的类型判断该列的数据类型,显然前8个是数字,然后引擎忽略了下面的文本。说穿了就是你的数据根本不符合数据库规范,用数据库方式操作当然要出错。
对于混合型列,连接字符串有一个IMEX属性,MSDN帮助:
注意: 设置 IMEX = 1 通知驱动程序使用导入模式。
在此状态下,注册表设置 ImportMixedTypes = TEXT 会被注意,混合的数据强制转换为文本。
为可靠地工作,也许需要修改注册表ISAM 驱动程序设置,TypeGuessRows = 8,在默认情况下以前八行确定数据类型。
如果八行全部是数字,即使设置 IMEX = 1 也不会把默认数据类型转换为文本,仍保留为数值。
注意,IMEX = 1 不能随便使用。这是导入模式,因此结果可能是不可预测的,如果您尝试执行追加或更新的数据在此模式下。
对于混合型列,连接字符串有一个IMEX属性,MSDN帮助:
注意: 设置 IMEX = 1 通知驱动程序使用导入模式。
在此状态下,注册表设置 ImportMixedTypes = TEXT 会被注意,混合的数据强制转换为文本。
为可靠地工作,也许需要修改注册表ISAM 驱动程序设置,TypeGuessRows = 8,在默认情况下以前八行确定数据类型。
如果八行全部是数字,即使设置 IMEX = 1 也不会把默认数据类型转换为文本,仍保留为数值。
注意,IMEX = 1 不能随便使用。这是导入模式,因此结果可能是不可预测的,如果您尝试执行追加或更新的数据在此模式下。