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

时间:2014-12-11 19:49:33

标签: sql-server excel sql-server-2008 ssis mscorlib

我正在使用SQL Server 2008 BIDS。我试图在Excel文件中读取多张纸。这些名称大部分是按字母顺序排列的(很少有特殊的字符串'&')。数据从第8行开始。我通过在Excel源的open rowset属性中设置行和列来跳过空行。我得到了确切的映射。但是,我无法预览数据。包运行成功(一切都变为绿色),但我的目的地没有数据。

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

  

显示预览时出错。

     

其他信息:

     

索引和长度必须引用字符串中的位置。参数   名称:长度(mscorlib)

如果我做错了或者我错过任何设置,请告诉我。

我提到的链接:

Skipping rows when importing Excel into SQL using SSIS 2008

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

由于

5 个答案:

答案 0 :(得分:1)

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

  

在Excel资源的属性>>自定义属性>>打开行集>>   的 SHEETNAME $ A12:J-

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

问题解决了。

答案 1 :(得分:1)

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

Select * FROM [Sheet1$A20:K]

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

答案 2 :(得分:0)

我在尝试将.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

从Sheet名称中删除空格后,我就可以预览数据了。标签最初称为时间数据;我把它改成了TimeData。

根据以上网站,工作表名称存在其他一些潜在问题:

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

答案 3 :(得分:0)

在我的情况下,我试图从SQL导出到Excel文件,并在尝试预览目标数据时接收“索引和长度必须引用字符串中的位置”。 从Excel目标编辑器中删除Excel工作表中的空间为我修复了它。

答案 4 :(得分:0)

在没有运气的情况下尝试所有其他答案后,我重命名了电子表格。  在Excel连接管理器中,我浏览了重命名的电子表格,未选中的第一行包含列名称。然后我可以在预览窗口中查看数据。