SSIS - 如何从特定行读取Excel文件?

时间:2014-02-03 16:44:47

标签: excel ssis

我收到的Excel文件非常“不规则”......前几行只是描述和随机信息。

我想开始从第17行开始读取文件,并且只能看到可见的行。

第17行是列的标题(就像普通表一样)。

这样的事情是否可能?

5 个答案:

答案 0 :(得分:1)

在Excel连接中,您可以设置openRowset,从Excel中选择单元格中的单元格, 示例:openRowset: Sheet1$A17:f30

答案 1 :(得分:0)

选中此link将脚本计数器添加到您的包中,然后您可以为MyCounter > 17执行条件拆分任务,如果您在导入后直接执行此任务,则应包含正确的行。

我不确定你的可见行是什么意思。如果您获得完全为空的行,则可以始终将其添加到条件中。

答案 2 :(得分:0)

可以像sql语句一样查询excel文件。在您的数据流任务中,取excel源将conncetion manager设置为excel,然后将数据访问模式设置为sql命令。在excel上写下查询。

实施例

将您的工作表名称视为Sheet1,具有列ID,名称,部门,您的数据从17开始写这样的查询

SELECT [ID],[Name],[Dept]来自[Sheet1 $ A17:C65536]其中[ID]不为空。

此查询选择从第17行到excel结尾的数据,直到数据存在。

如果您的标题行是A17,请不要忘记在连接管理器中检查“第一行是否有列名”。

答案 3 :(得分:0)

我为文件名创建了两个变量,为工作表名称创建了另一个变量,并将“对于每个循环”容器中的值存储到其中。 enter image description here

我做了一个Excel Connection Manager,然后从我在变量中创建的变量中获取工作表名称:

enter image description here

现在,我已将数据访问模式选择为“来自变量的SQL命令”。然后从下拉列表中选择变量名称。 我必须从我在Variable中创建的query_2中读取数据,并且其中我已经将工作表名称用作变量“ SELECT * FROM“ +” [“ + REPLACE(@ [User :: FileName],”。XLSX“,” $ A35:R]“)`选择工作表中可用的数据范围。

答案 4 :(得分:-1)

点击here以获得有关示例的明确说明