SSIS动态excel列标题

时间:2012-06-18 12:00:44

标签: excel dynamic import header ssis

我在使用SSIS时遇到问题,希望有人可以帮助我。我是这个Microsoft软件的新手,我被要求从13周的Excel计划文件中导入数据。因此,数据在Excel文件中显示如下:

Person id | Person age| School activity | Activity leader| 18-06-2012 | 25-06-2012 | ..(more weeks)

1452      | 14        | Painting        | John Smith     | 2          | 6          | ...

其中2和6表示每周在此活动上花费的小时数。

虽然此人员ID,人员年龄,学校活动和活动负责人是此Excel文件中的静态列标题,但是从文件更改为文件时的周列标题。

因此,我不知道如何将这样的数据文件导入我的数据库,因为我有从文件到另一个文件的映射问题。

我希望将数据放入数据库中作为每个周列的单独行,因此我使用unpivot转换来实现这一点。我想要的是能够导入数据而不管列标题。

2 个答案:

答案 0 :(得分:2)

如果数据可以作为CSV提供,则可以使用平面文件源,然后跳过标题行,只要始终存在具有相同,可预测格式的相同数量的列。

您在讨论中提到您将使用unpivot转换将数据转换为单独的行,因此您知道如何完成其​​余的工作。

答案 1 :(得分:0)

我最近不得不解决这个问题。我发现的最大问题是带有Excel的SSIS需要一组静态列。

所以我采用了一组文件并为每个文件构建了一个类似的数据流(仅在列不同的地方不同)。然后,我使用文件枚举器放置一个控制流来获取所有文件,并根据要使用的数据流的文件名做出决定。

它不优雅 - 但效果很好。