在SSIS中从Excel转换数据

时间:2013-11-26 15:39:40

标签: sql-server ssis sql-server-2008-r2

我正在尝试将数据从Excel传输到SQL Server数据库。每个Excel文件每个月都有一个工作表,每个工作表都具有以下结构,其中,对于每个“生产单位”,每个月的每一天都存储字段的值。所有字段名称都完全相同。

... (Emptry/Irrelevant Rows)
Unit 1 |       |      1|      2|      3|      4|      5| ...
Field1 |KG     |   95.2| 254.12|  125.0|  125.0|  125.0| ...
Filed2 |CM     |   95.2| 254.12|  125.0|  125.0|  125.0| ...
... (Other Fields)
... (Emptry/Irrelevant Rows)
Unit 2
Field1 |KG     |   95.2| 254.12|  125.0|  125.0|  125.0| ...
Filed2 |CM     |   95.2| 254.12|  125.0|  125.0|  125.0| ...
... (Other Fields)
... (Emptry/Irrelevant Rows)
Unit 3
...

每年都有一个单独的Excel文件。我想以下列格式将所有这些数据输入数据库:

Unit |Date       |Field1 |Field2 | ...
1    |18/02/2008 |   23.5|  12.56| ...
1    |19/02/2008 |   23.5|  12.56| ...
...
3    |01/05/2012 |   23.5|  12.56| ...
...

我知道如何获取工作表的特定片段然后取消/转动以旋转数据,但在此之前,我有2个问题。

一种方法是将列名从简单数字重命名为完整日期(或之后?)我将它们取消。因此,某些方式可以附加月份(可能基于使用工作表名称的案例陈述)和年份(可能来自我可以为每个Excel文件更改的变量)。

第二个是如何单独引入单位数据。单位之间有相当多的计算单元格和空/不相关的行。我要么需要为每个指定范围,要么引入所有,然后消除它们之间的行(可能必须基于行号,因为我不确定其他逻辑将适用于所有行)。但是,我如何将它们标记为1/2 / 3 /等单位?有5个。

我对SSIS并不熟悉,我觉得这里有点深度。是否应该在存储过程中完成所有这些操作?如果是这样,是否还需要SSIS?如果它将在SSIS中程序所在的位置?或者有更简单的方法来做这一切吗?

0 个答案:

没有答案