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

Azure Data Factory能否刷新含NOW()函数的动态Excel文件?

问题解答

ADF本身不支持直接触发Excel文件的公式刷新,它读取Excel时只会提取文件中已存储的静态值,不会调用Excel的公式计算引擎,所以带NOW()这类动态公式的单元格,ADF读到的是最后一次手动/自动刷新后保存的旧值。

下面是几种处理动态Excel文件的可行方案:

方案1:预先刷新Excel后再让ADF读取

如果Excel存储在Azure Blob/ADLS等位置,可以借助Azure Function来完成公式刷新:

  • 用C#编写Azure Function,使用EPPlus或Excel Interop库加载目标Excel文件
  • 调用库的计算方法(比如EPPlus的workbook.Calculate())触发公式刷新
  • 保存刷新后的文件回原存储位置,再触发ADF管道执行数据迁移
  • 注意:Excel Interop需要Windows环境的Function,EPPlus 5及以上版本用于商业场景需购买许可证

方案2:在ADF内替代Excel公式计算

针对NOW()这类获取当前时间的需求,完全可以在ADF中直接生成对应值,无需依赖Excel:

  • 在复制活动的派生列转换中,添加新列
  • 使用ADF内置函数生成时间:
    • 获取UTC当前时间:utcNow()
    • 转换为指定时区(比如中国标准时间):convertTimeZone(utcNow(), 'UTC', 'China Standard Time')
  • 将这个派生列映射到Azure SQL的目标字段即可

方案3:结合Excel Online与Power Automate

如果Excel存储在SharePoint/OneDrive:

  • 在Power Automate中创建流,先执行“刷新Excel表格”动作触发公式计算并保存
  • 接着添加“触发Azure Data Factory管道”动作,启动数据迁移流程

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 02:20:52