【问题标题】:SSIS Loading Excel File with Dynamic ColumnsSSIS 加载带有动态列的 Excel 文件
【发布时间】:2021-04-23 17:52:36
【问题描述】:

我觉得这应该不是一个困难的问题,但我是 SSIS 的新手,很难找到解决方案。我正在尝试加载两列数据,但每个月我都会得到一个新文件,其中包含一个附加列和一个新标题。例如,从一月份开始,我收到一个包含两列的文件:

Location Jan-21
Texas 100
Maine 500

然后在 2 月我收到如下文件:

Location Jan-21 Feb-21
Texas 100 250
Maine 500 450

每个月都会添加一个包含新数据的新列,但我只需要加载最新列的数据。我无法弄清楚如何在 SSIS 中执行此操作,这可能吗?我正在从 Excel 源加载到具有两列(位置和总计)的数据库中的临时表。

【问题讨论】:

  • 您的问题出在这句话上:“每个月我都会收到一个带有附加列的新文件 [...]”。输入数据的结构应该随着时间的推移添加行,而不是新列。也许您只能使用这些列:位置、日期和

标签: sql-server excel ssis


【解决方案1】:

SSIS 需要固定格式 - 即您的 2 列或所有列。如果电子表格像这样不断变化 - 您将无法从该电子表格导入。

可能有一些方法可以在 Excel 中设置一个单独的工作表来引用您需要的特定列,但我不知道该怎么做。

如果只看 SSIS 而我没有其他选择,我会执行以下操作:

  1. 脚本任务 - 获取要处理的文件并确定要处理的月份。
  2. 根据正在处理的文件,使用条件重定向到 12 个不同的数据流之一。
  3. 12 个单独的文件连接 - 每个月一个
  4. 然后每个数据流只选择需要的列

另一种选择是预处理器,您可以在其中使用类似 powershell 的东西处理文件并创建一个包含您需要的内容的 CSV 文件。

【讨论】:

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