3

我在使用 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 转换来实现这一点。我想要的是无论列标题如何都能够导入数据。

4

2 回答 2

2

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

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

于 2012-06-18T13:07:52.067 回答
0

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

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

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

于 2012-06-18T12:05:41.463 回答