使用SSIS将具有动态列名的Excel中的数据移动到表中

时间:2018-02-12 21:21:24

标签: sql-server excel ssis etl

我正在创建一个SSIS包,我必须将数据从Excel移动到SQL Server中的表。 Excel文件就像数据流任务中的Source Assistant一样。

Excel文件中的数字列不会更改,但列名称将动态更改。

例如,2017年excel将如下所示:

SId Name  Jan2017 Feb2017
1   name1  10      20
2   name2  30      40

在2018年,它将如下所示:

SId Name  Jan2018 Feb2018
1   name1  50      60
2   name2  70      80

每年一次,我将运行此Job将数据从excel移动到DB。我必须将这种数据电影放到一个包含下面列的表中。

当我在2017年运行此职位时,数据应如下所示填写。

SId Name   Jan     Feb
1   name1  10      20
2   name2  30      40

当我在2018年运行此作业时,数据应如下所示填写。

SId Name   Jan    Feb
1   name1  50      60
2   name2  70      80

我该如何处理这类数据?

1 个答案:

答案 0 :(得分:1)

解决方案概述

  1. 在excel连接的第一行中排除列名,使用sql命令作为数据访问模式,从第二行读取数据
  2. Excel源中的别名列名称 - >专栏

    F1  F2     F3     F4
    SId Name   Jan    Feb
    
  3. 详细解决方案

    您可以在Importing excel files having variable headers处理我的回答,它正在解决一个非常类似的案例。