将文件从电子表格导入我们的sql数据库表时,我遇到了一个奇怪的问题。如果任何列的第一行为null,则即使该列的第5行或第10行中有数据,整个列也会在表中反映为null。将.xls数据导入sql server数据库时是否有人遇到此问题?同样,如果该列的第一行不为null,则数据将被正确导入。
答案 0 :(得分:2)
问题在于,在导出具有混合数据类型列的Excel文件时,它会将非显性类型替换为null。
这不能通过直接方法解决,但根据我的经验,有两种解决方法可以产生良好的效果。
添加包含abc
等随机文本值的虚拟第一行,并将;IMEX=1
添加到连接字符串,这将强制excel从第一行读取数据类型,它将将所有数据读为Text
读取没有标题的Excel文件(在ConnectionString中,您应该有HDR=NO
)。还要将IMEX=1
添加到连接字符串,手动在Excel Source
中编写列名称,使用脚本组件跳过第一行(其中包含列标题)。
注意:使用OLEDB或Ace(在Excel连接管理器中使用)提供程序从excel导入数据并不能提供100%的结果,因此这些解决方法是尽可能减少错误