Sql server 为什么SSIS会忽略从Excel源导入的最后一列?
我是一名商业智能开发实习生,如果我对SQL或Microsoft BI Stack的了解不如其他人,请原谅我 我正在尝试将数据从Excel文件(.xls)导入SQL Server数据库表,由于某种原因,连接管理器完全忽略了我数据的最后一列 更奇怪的是,当Excel文件在Excel中打开时,如果我尝试在SSIS中设置连接管理器,SSIS会读取数据。 (我想我一开始是无意中这样做的,并对结果感到惊讶。) 以下是未在Excel中打开文件的数据预览: 以及在SSIS中设置连接管理器之前打开文件的数据预览: 这两个选项都描述了文件中数据的结尾,但由于某些原因,正如您所看到的,“区域”列在第一次数据预览中被省略 到目前为止,我已经尝试了以下步骤:Sql server 为什么SSIS会忽略从Excel源导入的最后一列?,sql-server,database,excel,ssis,Sql Server,Database,Excel,Ssis,我是一名商业智能开发实习生,如果我对SQL或Microsoft BI Stack的了解不如其他人,请原谅我 我正在尝试将数据从Excel文件(.xls)导入SQL Server数据库表,由于某种原因,连接管理器完全忽略了我数据的最后一列 更奇怪的是,当Excel文件在Excel中打开时,如果我尝试在SSIS中设置连接管理器,SSIS会读取数据。 (我想我一开始是无意中这样做的,并对结果感到惊讶。) 以下是未在Excel中打开文件的数据预览: 以及在SSIS中设置连接管理器之前打开文件的数据预览
谢谢 有时SSIS在检测给定列的数据类型时遇到问题。这可能导致意外的空值。将IMEX=1添加到ConnectionString可以清除此故障 范例 Provider=Microsoft.Jet.OLEDB.4.0;数据源=您的_工作簿.xls;扩展属性=“EXCEL 8.0;HDR=NO;” 变成 Provider=Microsoft.Jet.OLEDB.4.0;数据源=您的_工作簿.xls;扩展属性=“EXCEL 8.0;HDR=NO;IMEX=1” 有关更多详细信息,请参阅本文(不是我自己的作品):
您是在阅读整个excel工作表,还是在使用选定的范围,例如从[MyWorksheet$B5:J100]中选择*?我已经尝试了这两种方法,但都无效。与其说是数据类型,不如说是SSI根本没有检测到列。正如您在一个示例中看到的,账单到账户是最后一列,但在另一个示例中,在实际文件中,区域是最后一列。很抱歉,我看不到这些示例,我的防火墙正在阻止它们。我试图复制,但无法创建相同的错误。