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

Azure Data Factory中转换/直接使用数据湖XLSM/XLSB文件的方案咨询

在Azure Data Factory中处理XLSM/XLSB文件的可行方案

针对你在ADLS Gen2中存储的XLSM/XLSB文件,无需外部转换,可通过以下几种ADF原生或集成方案直接处理:

方案一:使用Azure Databricks活动(推荐大文件场景)

Databricks支持通过第三方库直接读取XLSM/XLSB格式,处理效率高,适合大体积文件:

  • 配置ADF管道添加Databricks Notebook活动,关联你的Databricks集群
  • 在Notebook中使用spark-excel库读取ADLS Gen2中的文件,示例代码:
# 读取XLSM/XLSB文件
df = spark.read.format("com.crealytics.spark.excel") \
    .option("header", "true") \
    .option("inferSchema", "true") \
    .option("dataAddress", "'Sheet1'!A1") \
    .option("fileExtension", ".xlsm") # 处理XLSB时替换为.xlsb
    .load("abfss://<容器名>@<存储账户名>.dfs.core.windows.net/<源文件夹路径>")

# 写入目标ADLS文件夹(可选择保存为XLSX/Parquet/CSV等格式)
df.write.format("com.crealytics.spark.excel") \
    .option("header", "true") \
    .save("abfss://<容器名>@<存储账户名>.dfs.core.windows.net/<目标文件夹路径>")
  • 集群可根据文件大小调整节点规格,横向扩展提升处理速度

方案二:使用自定义活动调用Azure Function/Azure Batch

通过自定义活动触发代码逻辑完成格式转换:

  • 若选择Azure Function:编写Python/C#函数,使用pandas(Python)或EPPlus(C#)读取XLSM/XLSB,转换为XLSX后写入目标ADLS路径,ADF中配置自定义活动调用该函数
  • 若选择Azure Batch:创建Batch池,运行包含转换逻辑的脚本,ADF自定义活动提交Batch作业处理文件
    示例Python转换代码片段:
import pandas as pd
from azure.storage.filedatalake import DataLakeServiceClient

# 初始化ADLS客户端
service_client = DataLakeServiceClient(account_url="https://<存储账户名>.dfs.core.windows.net", credential="<凭据>")

# 读取源文件
file_client = service_client.get_file_client("<容器名>", "<源文件路径>")
with open("temp.xlsm", "wb") as f:
    f.write(file_client.download_file().readall())
# xlsm用openpyxl引擎,xlsb替换为pyxlsb
df = pd.read_excel("temp.xlsm", engine="openpyxl")

# 写入目标文件
df.to_excel("temp_converted.xlsx", index=False)
with open("temp_converted.xlsx", "rb") as f:
    target_file_client = service_client.get_file_client("<容器名>", "<目标文件路径>")
    target_file_client.upload_file(f)

方案三:使用自托管集成运行时+ODBC驱动直接读取(不转换格式)

若需直接读取文件内容而非转换格式,可配置自托管集成运行时:

  • 在自托管运行时所在机器安装Microsoft Excel ODBC驱动
  • 在ADF中创建ODBC数据源,指向ADLS Gen2中的XLSM/XLSB文件(需通过映射网络驱动器或存储访问路径关联)
  • 使用Copy活动或Lookup活动直接读取文件数据,写入目标存储或数据服务

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 11:02:35