将数据从 Excel 导入到 SQL 时,DB SSIS 对整数列显示 NULL

While Import Data from Excel to SQL DB SSIS Shows NULL for Interger Columns

我正在使用 Excel 文件将数据导入 SQL 数据库 Table。

我的专栏包含文本和整数数据类型。

在 SSIS Excel 源助手中预览我的 Excel 文件时,它显示该整数行为 NULL。

注意:我不需要更改 Excel 文件中的任何列。

我们可以在 SSIS 中实现吗?

Excel 驱动程序读取指定源中一定数量的行(默认情况下为 8 行)以猜测每一列的数据类型。当列似乎包含混合数据类型时,尤其是数字数据与文本数据混合时,驱动程序决定支持大多数数据类型,并且 returns 包含其他类型数据的单元格的空值。

因此,对于这个问题,此行为是设计使然。为了解决这个问题,我们在属性 window.

中的 Excel 连接管理器的连接字符串中的扩展属性的值中添加 IMEX=1

对于 .xlsx 文件,Excel 连接管理器的连接字符串如下所示: Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Temp\Test.xlsx;Extended Properties="Excel 12.0 XML;HDR=YES;IMEX= 1";

对于 .xls 文件,Excel 连接管理器的连接字符串如下所示: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Temp\Test.xls;Extended Properties="Excel 8.0;HDR=YES;IMEX=1";