sql-server - 使用 SSIS 将数据从具有动态列名称的 Excel 移动到表

标签 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

每年我都会运行一次此作业,将数据从 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. 在Excel连接中排除第一行的列名,使用sql命令作为数据访问方式并从第二行读取数据
  2. Excel 源 -> 列中的别名列名

    F1  F2     F3     F4
    SId Name   Jan    Feb
    

详细解决方案

您可以关注我的回答Importing excel files having variable headers它正在解决一个非常相似的案例。

关于sql-server - 使用 SSIS 将数据从具有动态列名称的 Excel 移动到表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48755694/

相关文章:

sql-server - SQL Server中使用游标变量的优点(声明@cn游标)

java - 从 jdbc/SQL Server 2005 读取希腊文本并用 servlet 显示它

excel - vba计算两个单元格中日期之间的天数,仅当两个单元格都有日期时返回一个值

ssis - 将最新的csv文件导入到SSIS中的SQL Server

sql-server-2008 - 新服务器上的子 SSIS 包出现随机 0x80004003 无效指针错误

mysql - 如何在 SQL 中通过多列连接两个表?

SQL Server 将标识符传递给存储过程/动态 SQL

arrays - 在VBA中将范围解析为数组时下标超出范围错误

vba - Excel 自动筛选,复制选择,粘贴到新工作表

SSIS:如何禁用任务?