Azure Data Factory(ADF)如何将多工作表Excel拆分为独立.csv文件
Azure Data Factory 自动遍历Excel工作表导出CSV解决方案
本方案仅需使用1个你已配置好的带SheetName参数的Excel数据集,无需额外创建多个数据集,全程无硬编码工作表名称。
步骤1:配置Get Metadata活动读取全量工作表名称
在管道中先添加1个Get Metadata活动,按以下规则配置:
- 数据集选择你已创建的指向远程文件服务器Excel文件的数据集,SheetName参数留空,不需要填写值
- 在「字段列表」配置项中,添加
工作表名称(英文环境对应Sheet Names)元数据字段 - 该活动运行后会自动返回当前Excel文件所有工作表名称的数组,无需提前预知工作表数量与命名
步骤2:配置ForEach迭代活动
将Get Metadata活动的输出连接到ForEach活动,ForEach的配置如下:
- 「项」参数填写表达式:
@activity('替换为你实际的Get Metadata活动名称').output.sheetNames,示例中如果Get Metadata活动命名为Get_Excel_Sheets,则表达式为@activity('Get_Excel_Sheets').output.sheetNames - 若工作表数量较多,可开启「批量并发」选项,最高支持20个任务并行执行,提升导出效率
步骤3:配置ForEach内部的Copy活动
在ForEach活动的内部添加Copy活动,按以下规则配置:
- 源数据集依然选择你已创建的带
SheetName参数的Excel数据集,SheetName参数填写@item(),会自动传入当前迭代的工作表名称 - 源配置可根据实际情况勾选「首行作为标题」,无需提前定义工作表Schema,ADF会自动适配每个工作表的结构
- 接收器选择指向ADLS Gen2的CSV数据集,可通过动态表达式设置输出文件名,示例:
@concat(item(), '.csv'),生成的CSV文件会直接对应原工作表名称,便于后续筛选 - 接收器无需预设Schema,ADF会自动根据源工作表结构写入CSV文件
注意事项
- 若Excel文件设置了访问密码,需要先在Excel数据集的配置页填写密码,否则Get Metadata活动无法正常读取工作表列表
- 若远程文件服务器为SMB协议,需确认你使用的集成运行时(IR)具备该文件路径的访问权限,避免读取失败
- 单工作表数据量过大时,可在Copy活动中开启分块写入配置,不影响整体执行逻辑
内容的提问来源于stack exchange,提问作者Vanbuskirk
相关产品推荐
相关产品推荐

