跳过前几行后无法预览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工作表中删除空间为我解决了这个问题。