我在使用 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文件中的静态列标题,但周列标题在文件之间更改时。
因此,我不知道如何将这样的数据文件导入我的数据库,因为我遇到了从一个文件到另一个文件的映射问题。
我希望将数据作为每周列的单独行放入数据库中,因此我使用非透视转换来实现这一点。 我想要的是能够导入数据,而不管列标题如何。
如果数据可以作为 CSV 提供,则可以使用平面文件源,然后跳过标题行,只要始终存在具有相同、可预测格式的相同数量的列。
您在讨论中提到,您将使用非透视转换将数据转换为单独的行,因此您知道如何执行其余工作。
我最近不得不解决这个问题。我发现的最大问题是带有 Excel 的 SSIS 需要一组静态列。
因此,我获取了一组文件,并为每个文件构建了类似的数据流(仅在列不同的地方有所不同)。然后,我使用文件枚举器放置一个控制流来选取所有文件,并根据文件名决定要使用的数据流。
它并不优雅 - 但它工作得很好。