【问题标题】:How to load specific columns of multiple spreadsheets of excel file using SSIS?如何使用 SSIS 加载 Excel 文件的多个电子表格的特定列?
【发布时间】:2019-11-13 05:36:28
【问题描述】:

我正在尝试使用 SSIS 将数据从 Excel 工作表插入到 SQL Server。该工作表包含多个电子表格,我只需加载特定列并将其数据插入主表。

例如。有 4 个电子表格,例如 Sheet1、Sheet2、Sheet3、Sheet4

我需要 Sheet1 中的 2 列、Sheet2 中的 3 列、Sheet3 中的 1 列和 Sheet4 中的 4 列,并将它们的数据插入到名为 dbo.StatsOfWeek 的主表中,并包含我需要从上面的表中获取的所有列。

我该怎么做?我尝试了一些方法,但无法成功完成我需要的工作。

PS:我正在使用 SQL Server 2016Visual Studio 2017(SSDT)

【问题讨论】:

  • 您想将多张工作表放在一张桌子上吗?您需要确定如何关联这些行。即excel中具有相同行号的所有行是否应该出现在表中的同一记录中?
  • 是的,多个电子表格的行数相同
  • 这些工作表之间是否有一个键可以将多个来源连接在一起?例如 personKey 或 VendorID?我猜@Nick.McDermaid 以不同的方式提出了这个问题。
  • 是的,Datetime 列在所有工作表中都用作关键列。

标签: sql-server excel ssis sql-server-data-tools


【解决方案1】:

您可以使用“Merge Join 组件”(但不推荐 - 不好的做法)

看起来是这样的:

步骤:

  1. 创建 Excel 源代码。
  2. 使用排序组件并选择列进行排序。
  3. 添加“合并连接”并选择“连接类型”和输出列。
  4. 添加目标或其他转换。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多