如何将不同名称、相同模式的Excel文件导入数据库?

发布于 2024-11-10 16:55:41 字数 95 浏览 2 评论 0原文

如何从每次具有不同文件名的 Excel 源文件将数据导入到 SSIS 中的 SQL Server 表中(示例 Excel 文件名:abc123、123abc、ab123c 等)

How to import data into a sql server table in SSIS from an excel source file that has different file names each time (sample excel filenames: abc123, 123abc,ab123c etc.,)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

陌若浮生 2024-11-17 16:55:41

实现此目的的一种可能方法是在控制流选项卡中使用ForEach循环容器,然后在控制流任务中放置数据流任务 。我已经在下面的示例中解释了该过程。此示例使用 SQL Server 后端作为目标,使用 Excel 97-2003 格式 .xls 作为源文件。请注意Excel 文件应具有相同的格式。

分步过程:

  1. 创建一个名为 dbo.Location 的表,如屏幕截图 #1 所示。此示例将通过读取具有相同布局的三个不同 Excel 文件来填充此表。屏幕截图显示包执行之前有一个空表。

  2. 在路径 c:\temp\ 中创建两个 Excel 文件,如屏幕截图 #2 - #4 所示。请注意,这两个 Excel 文件具有相同的布局,但内容不同。

  3. 在 SSIS 包上,创建三个变量,如屏幕截图 #5 所示。变量FolderPath将包含Excel文件所在的路径; FileExtension 将包含 Excel 文件扩展名(本例中为 *.xls),并且 FilePath 应配置为指向一个有效的 Excel文件(仅在 Excel 连接管理器的初始配置期间需要此文件)。

  4. 连接管理器中创建一个指向一个有效 Excel 文件的 Excel 连接,如屏幕截图 #6 所示。

  5. 连接管理器中创建指向 SQL Server 的

  6. 在 SSIS 包上,在 ForEach 循环容器中放置一个 ForEach 循环容器和一个数据流任务,如屏幕截图 #7 所示。

  7. 配置 ForEach 循环容器,如屏幕截图 #8 和 #9 所示。通过执行此操作,变量 User::FilePath 将在变量 FolderPath 的帮助下包含位于文件夹 c:\temp\ 中的 Excel 文件的完整路径code> 和 FileExtensionCollection 部分配置。

  8. 在数据流任务中,放置一个 Excel 源 来读取 Excel 文件数据,并放置一个 OLE DB 目标 将数据插入 SQL Server 表 dbo.Location 。数据流任务应如屏幕截图 #10 所示。

  9. 配置 Excel 源,如屏幕截图 #11 和 #12 所示,以使用 Excel 连接读取数据。

  10. 如屏幕截图 #13 和 #14 所示配置 OLE DB 目标,以将数据插入 SQL Server 数据库表中。

  11. 在连接管理器的 Excel 连接上,配置表达式 ExcelFilePathServerName,如屏幕截图 #15 所示

  12. 数据流任务的示例执行如屏幕截图#16所示。

  13. 屏幕截图#17 显示包执行后表 dbo.Location 中的数据。请注意,它包含屏幕截图 #3 和 #4 中显示的 Excel 文件中存在的所有行。

  14. 数据流任务属性上,将DelayValidation设置为True,以便SSIS在您打开包时不会抛出错误.

希望有帮助。

屏幕截图 #1:

1

屏幕截图 #2:

2

屏幕截图#3:

3

屏幕截图 #4:

4

屏幕截图 #5:< /strong>

5

屏幕截图#6:

6

屏幕截图 #7:

7

屏幕截图 #8:< /strong>

8

屏幕截图#9:

9

屏幕截图 #10:

10

屏幕截图 #11:< /strong>

11

屏幕截图 #12:

12

屏幕截图 #13:

13

屏幕截图 #14:

14

屏幕截图#15:

15

屏幕截图 #16:

16

屏幕截图 #17:

17

屏幕截图 #18:

18

One possible way of achieving this is by using ForEach Loop container in the Control Flow tab and then placing a Data Flow task within the Control Flow task. I have explained the process in the below example. This example uses SQL Server back-end as the destination and Excel 97-2003 format .xls as the source files. Please note that the Excel files should be of same format.

Ste-by-step process:

  1. Create a table named dbo.Location as shown in screenshot #1. This example will populate this table by reading three different Excel files having the same layout. The screenshot shows an empty table before the package execution.

  2. Create two Excel files in path c:\temp\ as shown in screenshots #2 - #4. Notice that both the Excel files have the same layout but different content.

  3. On the SSIS package, create three variables as shown in screenshot #5. Variable FolderPath will contain the path where the Excel files are located; FileExtension will contain the Excel file extension (here in this case it is *.xls) and FilePath should be configured to point to one valid Excel file (this is required only during the initial configuration of the Excel connection manager).

  4. Create an Excel connection in the connection manager pointing to one valid Excel file as shown in screenshot #6.

  5. Create an OLE DB Connection in the connection manager pointing to the SQL Server.

  6. On the SSIS package, place a ForEach Loop container and a Data Flow task within the ForEach loop container as shown in screenshot #7.

  7. Configure ForEach loop container as shown in screenshots #8 and #9. By doing this, variable User::FilePath will contain the full path Excel files located in the folder c:\temp\ with the help of variables FolderPath and FileExtension configured on the Collection section.

  8. Inside the data flow task, place an Excel source to read Excel file data and OLE DB destination to insert data into SQL Server table dbo.Location. Data flow task should look like as shown in screenshot #10.

  9. Configure the Excel source as shown in screenshots #11 and #12 to read the data using Excel connection.

  10. Configure the OLE DB destination as shown in screenshots #13 and #14 to insert the data into SQL Server database table.

  11. On the Excel connection in the connection manager, configure the Expressions ExcelFilePath and ServerName as shown in screenshot #15.

  12. Sample execution of the data flow task is shown in screenshot #16.

  13. Screenshot #17 displays the data in the table dbo.Location after package execution. Please note that it contains all the rows present in Excel files shown in screenshots #3 and #4.

  14. On the Data Flow task properties, Set the DelayValidation to True so that the SSIS doesn't throw errors when you open the package.

Hope that helps.

Screenshot #1:

1

Screenshot #2:

2

Screenshot #3:

3

Screenshot #4:

4

Screenshot #5:

5

Screenshot #6:

6

Screenshot #7:

7

Screenshot #8:

8

Screenshot #9:

9

Screenshot #10:

10

Screenshot #11:

11

Screenshot #12:

12

Screenshot #13:

13

Screenshot #14:

14

Screenshot #15:

15

Screenshot #16:

16

Screenshot #17:

17

Screenshot #18:

18

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文