SSIS多SQL任务数据导入同一Excel工作簿不同工作表可行性问询
当然可行啦!这是具体的实现步骤
第一步:确认Excel连接管理器的配置
你得用支持多工作表操作的Excel连接驱动,推荐选Microsoft Excel 16.0 OLE DB Provider这类新版本驱动,避免旧驱动的兼容性坑。连接管理器直接指向你的目标工作簿就行,新工作表不用提前创建——SSIS会帮你自动生成,当然提前建好也没问题。第二步:新增SQL任务提取目标数据
加一个新的Execute SQL Task,配置好要取数的SQL Server数据源,写好对应的查询语句拿到要加载到新工作表的数据就行。要是数据量不小,建议用参数化查询或者拆分逻辑,能提升运行效率。第三步:搭建数据流向完成写入
从新的SQL任务后面拖出一个数据流向任务,在里面做这两步:- 加一个
OLE DB Source,选刚才的SQL数据源,直接写查询或者选对应的表/视图取数; - 加一个
Excel Destination,选之前的Excel连接管理器,然后在Name of the Excel sheet里填你要写入的新表名,格式得是[SheetName$](比如[MonthlyReport$])。只要连接管理器配置对了(比如勾选FirstRowHasColumnName),就算工作表不存在,SSIS也会自动创建它。
- 加一个
几个要注意的小细节
- 运行包的时候一定要关掉目标Excel工作簿,不然SSIS会因为文件被占用报错;
- 调整好任务的执行顺序:比如可以让原有和新增的Excel加载任务在完成SQL Server表加载后并行跑,或者按顺序执行,看你的业务需求来;
- 如果要定制新工作表的格式(比如列宽、单元格格式),可以在Excel目标里配置列映射,或者加个Script Task来调整,不过只是单纯加载数据的话这步没必要。
内容的提问来源于stack exchange,提问作者sql2015
相关产品推荐
相关产品推荐

