SSIS动态excel列标题

SSIS动态excel列标题,excel,dynamic,import,header,ssis,Excel,Dynamic,Import,Header,Ssis,我在使用SSIS时遇到问题,希望有人能帮助我。我是这个微软软件的新手,我被要求从一个Excel时间表文件中导入数据,该文件的特点是13周。因此,数据在Excel文件中显示如下: Person id | Person age| School activity | Activity leader| 18-06-2012 | 25-06-2012 | ..(more weeks) 1452 | 14 | Painting | John Smith | 2

我在使用SSIS时遇到问题,希望有人能帮助我。我是这个微软软件的新手,我被要求从一个Excel时间表文件中导入数据,该文件的特点是13周。因此,数据在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转换来实现这一点。我想要的是能够导入数据,而不考虑列标题。

我最近不得不解决这个问题。我发现的最大问题是,使用Excel的SSI需要一组静态列

因此,我获取了一组文件,并为每个文件构建了一个类似的数据流(只在列不同的地方有所不同)。然后,我使用一个带有文件枚举器的控制流来提取所有文件,并根据文件名来决定要使用的数据流


它并不优雅,但效果很好。

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


您在讨论中提到,您将使用unpivot转换将数据转换为单独的行,这样您就知道如何执行其余操作。

每个文件的列数始终相同还是不同?是的,有。只是周专栏发生了变化。本周我有13周的时间,从2012年6月18日开始到2012年9月10日。因此,下周我将有另一个具有相同列的列,但周列将从2012年6月25日到2012年9月17日。是否可以将数据作为纯csv文件转储?平面文件导入器并不真正关心列标题是什么,因此如果您可以引入格式一致的文件(例如,13列、逗号分隔、带引号的字符串),您只需跳过标题行,然后对数据本身执行您想要的任何操作。此外,您能为我们定义模式映射吗?换句话说,您在Excel中有这些列。。。数据库中的相应列是什么/数据库中的数据是如何表示的?数据库中的列如下:人员id->人员id人员年龄->人员年龄学校活动->学校活动负责人->活动负责人18-06-2012,25-06-2012,…->周标签下方的周行->我计划使用unpivot转换获取这些列的小时数。问题是,这样做时,每次我有一个新的计划文件时,我都必须创建一个数据流。难道没有办法自动做到这一点吗?