Excel批量导入数据库——SSIS

11 篇文章 ¥19.90 ¥99.00
本文介绍了如何使用SQL Server Integration Services (SSIS) 将文件夹中的多个Excel文件批量导入到数据库的同一张表中。通过创建SSIS项目,设置Foreach循环容器和文件枚举器,配合Excel源和OLE DB目标实现数据迁移。确保所有Excel文件的sheet名和字段名一致,并在导入前清空目标表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  •  现在想将文件夹中的多个Excel文件批量导入数据库中,且放在同一张表中
  • 工具:SQL Server数据库,Microsoft SQL Management Studio(SSMS),Microsoft Visual Studio(SSDT)
  • 注意:要求所有的excel文件sheet名,字段名一致

首先,在数据库中新建一张表,字段名与excel文件中的字段一致

USE [Kingfisher_test]
GO

/****** Object:  Table [dbo].[SAP_Sales_GM_Stock]    Script Date: 2020/3/20 13:49:13 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[SAP_Sales](
	[Year and Month] [nvarchar](255) NULL,
	[Office] [nvarchar](255) NULL,
	[Leading Category] [nvarchar](255) NULL,
	[Category Name] [nvarchar](255) NULL,
	[Vendor Name] [nvarchar](255) NULL,
	[Sales Value] [float] NULL,
	[Gross Margin] [float] NULL,
	[Net Margin] [float] NULL,
	[Sales Quantity] [float] NULL,
	[DC Quantity] [float] NULL,
	[DC Value] [float] NULL,
	[Store Quantity] [float] NULL,
	[Store Value] [float] NULL
) ON [PRIMARY]
GO

打开SSDT工具,新建一个SSIS项目~

在包中,拖入"执行SQL任务",双击打开

在常规中的"Connection"连接上数据库,在"SQLStatement"中写入需要执行的SQL语句,这里的目的是清空数据库中该表的所有数据,点击确定

拖入Foreach循环容器,与执行SQL任务关联上,双击打开循环容器

在常规中可以改循环容器的名称

 在集合中选择"Foreach文件枚举器"

 

文件夹中选择存放excel文件夹路径

 变量映射中新建变量

写入变量的名称,值中写存放excel的文件夹路径,确定

 

将数据流拖入循环容器中,双击进入数据流

在数据流中拖入"Excel 源"和"OLE DB 目标"

双击"Excel 源",在连接管理器中新建Excel 连接管理器,输入文件夹中任意一个excel的路径,确定

 

双击"OLE DB 目标",选择数据库和新建的表

 

查看映射看字段是否一一对应上,确定

右击下方的Excel 连接管理器,选择属性,在属性窗口选择"Expressions",进入属性表达式编辑器

 

属性选择"ExcelFilePath",点击表达式进入表达式生成器

 

 

将之前新建的变量拖入下面的表达式框中,确定

 

 

 

页面上会显示报错,此时在数据流页面中任意空白地方右击选择属性

 

将"DelayValidation"改为True

此时程序就编辑完毕,点击启动

文件开始上传

 

 

若文件过多,数据量较大可能需要上传一段时间

 

感谢阅读!!!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BI-段二胖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值