需要根据 SSIS 中的某些条件过滤 excel 行

Need to filter excel rows based on some condition in SSIS

我有一个包含少量记录的源 excel 文件。截至目前,我正在 excel 文件中应用过滤器,复制新结果集(应用过滤器后),然后将新的 Sheet 粘贴到相同的 excel 中,然后加载新数据在 SQL 服务器中设置。

我想自动执行任务,这样我就可以避免复制粘贴,因为文件数量较多。我做了 Google 搜索并发现条件拆分可能会有帮助,但是当我在相同的条件上应用条件拆分时,我没有发现最终结果集有任何差异。

因此请求指导。

假设您要将三个过滤器应用于三个不同列的某些 Excel 数据以获得最终数据集。

假设您的 Excel sheet 有以下列:

  • ProductId(产品的整数 ID 字段)
  • AmountOfSale(价值在 美元)
  • StoreId(商店位置的整数 id 字段 销售)
  • 已售数量(整数值)

现在假设您要应用以下过滤器:

  • 销售额 > 100.00 美元
  • StoreId = 13(您只想查看 StoreId 13 的数据)
  • 售出数量在 1 到 10 之间

我假设您在数据流任务中正确配置了 Excel 源连接。

添加一个 Conditional Split 任务并将 Excel 源的输出连接到它。进入 Conditional Split 配置编辑器。单击 Output Name 下的框并为过滤后的输出命名,可能类似于 PassedFilters。接下来,我们将构建过滤条件。然后在 Condition 下添加以下表达式:

[AmountOfSale] > 100.00 && [StoreId] == 13 && ([QuantitySold] >= 1 && [QuantitySold] <= 10)

点击 OK 并保存 Conditional Split 任务。现在将您的目标连接添加到您的数据流。将 Conditional Split 任务连接到 Destination 连接器,SSIS/SSDT 应该会弹出 Input Output Selection 的对话框。从输出下拉列表中选择您的 PassedFilters 输出,并且应该预先填充目标输入。如果不是,则选择正确的输入。然后点击 OK.

现在只有通过过滤器的行才会发送到目标。