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

如何通过Power Automate定时静默刷新SharePoint中带Power Query的Excel文件?

问题:通过Power Automate+Office Script静默刷新SharePoint中带Power Query的Excel工作簿

我在SharePoint库中存储了多个Excel工作簿(每个客户端对应一个,包含客户数据),每个工作簿都配置了从MSSQL提取数据的参数化Power Query。我写了一段Office Script,在工作簿打开时能成功刷新所有数据连接:

function main(workbook: ExcelScript.Workbook) {
    // Refresh all data connections
    workbook.refreshAllDataConnections();
}

之后创建了Power Automate流,流能成功执行(可访问目标工作簿和Office Script),但工作簿没有更新新提取的数据——只有打开工作簿时刷新才生效,可没办法一直保持工作簿打开。想通过Power Automate按计划,用Office Script实现Excel工作簿的静默刷新,请问这可行吗?

注:PowerBI不可用,给每个工作簿设置绝对引用的VBA、Python或PowerShell组合方案效率太低。


可行,但需要调整Office Script的写法和Power Query的设置,具体步骤如下:

  1. 修改Office Script适配Power Query刷新
    workbook.refreshAllDataConnections()仅针对传统数据连接生效,无法刷新Power Query(Get & Transform)查询。需要遍历并刷新所有Power Query查询,替换为以下脚本:
function main(workbook: ExcelScript.Workbook) {
    // 获取所有Power Query查询
    const queries = workbook.getQueries();
    // 逐个刷新查询
    queries.forEach(query => {
        query.refresh();
    });
    // 刷新后保存工作簿,确保变更写入SharePoint
    workbook.save();
}
  1. 调整Power Query的加载属性
    确保每个Power Query允许后台刷新,避免仅在打开文件时触发:
  • 打开对应Excel工作簿,进入「数据」选项卡,点击「查询和连接」
  • 右键目标查询,选择「属性」
  • 在「使用状况」标签下,勾选「允许后台刷新」,取消「仅当打开文件时刷新数据」选项
  1. 优化Power Automate流配置
  • 执行Office Script动作后,添加「等待」动作(建议等待30-60秒,根据数据量调整),确保刷新和保存操作完全完成
  • 确认流使用的账号对SharePoint库拥有编辑权限,同时对MSSQL数据库具备读取权限

额外注意点:

  • 这种静默刷新无需保持工作簿打开,Power Automate调用Office Script时会在云端实例化工作簿完成操作
  • 如果查询包含参数,需确保参数在云端环境中能正确解析(比如参数来自工作簿单元格,需确认单元格值无误)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 21:57:52