我有一个 SSIS 包,它将多个 Excel 文件导入到 SQL Server 但在我的 Excel 文件中,顶部有一些空行,并且在不同的文件中有所不同 例如,一个Excel文件的前5行为空,数据从第6行开始,但我的一个Excel文件的前9行为空,数据从第10行开始,所以有没有任何方法可以根据空行动态跳过行
我尝试从[sheet$A7:H]中选择*,但它只适用于一个Excel文件我不想为每个文件单独编写代码有没有什么方法可以动态地进行合作
你能动态地做到吗?也许,这将取决于您的文件的详细信息及其变化方式。
正如您所注意到的,您可以编写查询
select * from [sheet$A7:H]
如果这是在 SSIS 变量中,那么只要在数据流开始之前查询是正确的(可能是验证的),那么您将能够跳过 N 行。
当然,问题在于细节,因为您需要一个预处理步骤,例如脚本任务来打开同一个 Excel 文件并识别 A 列(或确定感兴趣的任何列)中的第一个非空行)
另一种方法是向数据流添加条件拆分。
条件可能很简单
(IsNULL(Col1))
或者也许
(IsNULL(Col1) || Col1 == "")
当您将数据带入数据流时,无论您的数据评估结果如何,都会告诉您想要什么条件。
将这些行路由到空。将条件拆分之外的默认路径保留到数据流的其余部分,数据流将从工作表中读取所有行。只有符合我们条件的行才会流向其余下游组件。