使用ADF将Azure Storage的Excel文件名写入SQL表的工作表名问题咨询
ADF同步Blob存储Excel文件名到SQL Server的解决方案
完全不需要创建适配不同工作表名的通用Excel数据集,你的需求仅需记录文件名/路径,不需要解析Excel文件内容,可以直接绕开工作表配置的强制要求,具体实现方案如下:
优先推荐方案(无需处理Excel格式配置)
你可以直接使用二进制格式的Blob存储数据集,不需要对Excel文件本身做解析,操作步骤:
- 新建Azure Blob存储数据集,格式选择二进制,仅配置指向你需要遍历的存储账户、容器、目标文件夹路径即可,无需设置任何和Excel格式、工作表相关的参数
- 添加
Get Metadata活动,关联上述二进制数据集,字段选择Child items,运行后即可直接获取该文件夹下所有文件的文件名、完整路径等属性 - 添加
ForEach活动遍历Get Metadata返回的文件列表,在循环内直接调用复制活动或者SQL存储过程,将需要的文件名/路径字段写入SQL Server对应表即可
备用方案(若后续需读取Excel内容且工作表名不统一)
如果你后续有读取Excel文件内容的需求,可以通过动态获取工作表名的方式解决硬编码工作表名的报错问题:
- 新建Excel格式的Blob数据集,工作表名称位置留空或者设置为动态参数
- 对单个Excel文件调用
Get Metadata活动,选择Get sheet list字段,即可动态获取该文件下的所有工作表名称 - 用
ForEach活动遍历返回的工作表名称列表,将工作表名作为参数传入Excel数据集,即可实现无需提前指定工作表名的Excel数据读取
内容的提问来源于stack exchange,提问作者sear1234
相关产品推荐
相关产品推荐

