You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用SSIS导入Excel数据到SQL Server并实现宽表转长表

SSIS实现Excel宽表转长表导入SQL Server操作步骤

1. 配置Excel数据源

  • 新建SSIS包,添加数据流任务,在数据流中插入「Excel源」组件
  • 配置Excel连接管理器指向目标Excel文件,选择对应工作表,确认读取到的字段包含Product及所有年周列(202147、202148等)

2. 逆透视转换(宽表转长表核心步骤)

  • 在Excel源下游添加「逆透视转换」组件,关联Excel源的输出
  • 打开逆透视转换编辑器:
    • 勾选Product字段,设置为「传递列」,保留原值不参与转换
    • 勾选所有年周列,统一设置「输出列别名」为Value
    • 将「透视键列名」设置为YearWeek,确认后组件会自动将原年周列名输出为YearWeek字段值,对应单元格数值输出为Value字段值,同时绑定对应Product

3. 配置SQL Server目标

  • 在逆透视转换下游添加「OLE DB目标」组件,配置OLE DB连接管理器指向目标SQL Server实例
  • 选择目标表MyData,进入字段映射页面,确认三个字段匹配关系:
    • 源Product → 目标Product
    • 源YearWeek → 目标YearWeek
    • 源Value → 目标Value
  • 若字段类型不匹配,可在逆透视转换和OLE DB目标之间添加「数据转换」组件调整字段类型

4. 运行验证

执行SSIS包后,可执行以下SQL校验导入结果:

-- 校验总数据量是否等于 产品数量 * 年周列数量
SELECT COUNT(*) FROM MyData;
-- 抽查特定产品特定周的数值是否匹配
SELECT * FROM MyData WHERE Product = 'XXX' AND YearWeek = '202147';

若运行包时报Excel驱动相关错误,可在项目属性的调试页面将「Run64BitRuntime」设置为False,使用32位Excel驱动运行。
若后续Excel年周列会持续新增,可将转换逻辑改为动态实现:通过脚本组件读取Excel元数据获取所有年周列名,动态生成转换逻辑,无需每次新增列都修改SSIS包配置。

内容的提问来源于stack exchange,提问作者user17074321

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 16:06:08