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

SSIS-如何从特定行开始读取Excel文件?,excel,ssis,Excel,Ssis,我收到的Excel文件非常不规则。。。前几行只是描述和随机信息 我想从第17行开始读取文件,并且只读取可见的行 第17行是列的标题,与普通表类似 这样做可能吗?选中此项将脚本计数器添加到您的包中,然后您可以为MyCounter>17执行条件拆分任务,如果您在导入后立即执行此操作,则它应该包含正确的行 我不知道你说的可见行是什么意思。如果得到完全为空的行,则始终可以将其添加到条件中 可以像sql语句一样查询excel文件。在数据流任务中,使用excel源代码将连接管理器设置为excel,然后将数据

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

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

第17行是列的标题,与普通表类似

这样做可能吗?

选中此项将脚本计数器添加到您的包中,然后您可以为MyCounter>17执行条件拆分任务,如果您在导入后立即执行此操作,则它应该包含正确的行


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

可以像sql语句一样查询excel文件。在数据流任务中,使用excel源代码将连接管理器设置为excel,然后将数据访问模式设置为sql命令。在excel上编写查询

范例

假设您的工作表名为Sheet1,包含ID、name、Dept列,数据从17开始,这样写查询

从[Sheet1$A17:C65536]中选择[ID]、[Name]、[Dept],其中[ID]不为空

此查询从excel的第17行选择数据,直到数据存在为止


如果标题行是17,不要忘记检查连接管理器中的第一行是否有列名。

单击以获得带有示例的清晰解释在excel连接中,您可以设置openRowset,从工作表中选择单元格,如excel,
示例:openRowset:Sheet1$A17:f30

我创建了两个变量,一个用于文件名,另一个用于工作表名,并将“for each loop”容器中的值存储到其中。

我制作了一个Excel连接管理器,然后从我在变量中创建的变量中获取工作表名称:

现在我已经选择数据访问模式为“变量的SQL命令”,然后从下拉列表中选择变量名。 我必须从查询_2中读取数据,我在变量中创建了查询_2,并且在查询_2中我使用了表名作为变量SELECT*from+[+REPLACE@[User::FileName],.XLSX,$A35:R]`来选择表中可用的数据范围