跳过前几行后无法预览SSIS Excel源数据

我正在使用SQL Server 2008 BIDS。 我正尝试读取具有多个工作表的Excel文件。 这些名字大多是按字母顺序排列的(很less有特殊字符“&”)。 数据从第8行开始。我通过设置Excel源的打开行集属性中的行和列来跳过空白行。 我得到确切的映射。 但是,我无法预览数据。 软件包运行成功(一切都变成绿色),但目标中没有数据。

我尝试预览时收到的错误是:

显示预览时出错。

附加信息:

索引和长度必须指向string内的一个位置。 参数名称:长度(mscorlib)

请让我知道如果我做错了什么,或者我缺less任何设置。

我提到的链接:

使用SSIS 2008将Excel导入SQL时跳过行

https://connect.microsoft.com/SQLServer/feedback/details/557049/ssis-fails-to-preview-excel-source-connector-due-to-incompatible-sheet-name

谢谢

我在一位朋友的帮助下破解了它。

在Excel源>>自定义属性>>打开行集>> SheetName $ A12:J的属性中

这意味着跳到A12的行。 并且从A12到J列的结尾考虑数据。

问题解决了。

解决这个问题的方法是在数据访问模式下使用q SQL命令。

Select * FROM [Sheet1$A20:K] 

这将正确读取数据,不会发生预览错误。

我正在尝试将一个.xlsx文件导入到SSIS 2008中,同样的错误。我首先将该文件保存为.xls(Excel 97-2003)。 我仍然收到上述错误,无法预览新文件的数据。

万一这个链接将来会崩溃: https : //connect.microsoft.com/SQLServer/feedback/details/557049/ssis-fails-to-preview-excel-source-connector-due-to-incompatible-sheet-name

一旦我从工作表名称中删除空格,我就可以预览数据。 该标签最初被称为时间数据; 我将其更改为TimeData。

根据上面的网站,表单名称的一些其他潜在的问题:

  • 用所有数字命名的表格(例如:4385)
  • 工作表名称以数字开头

在我的情况下,我试图从SQL导出到Excel文件,并试图预览目标数据时接收“索引和长度必须引用string中的位置”。 从Excel目标编辑器的Excel工作表中删除空间为我解决了这个问题。