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

如何通过Excel工作表按钮调用带Office认证的远程服务?

Excel工作表按钮功能实现问题

需求

我希望在Excel工作表中设置按钮,实现以下功能:

  • 读取工作表中的部分数据
  • 通过Office认证调用远程端点
  • 将响应结果写回工作表

已尝试的方案及遇到的问题

1. Office Scripts

  • 无法访问OfficeRuntime.auth或Office.auth
  • fetch API仅支持保存在OneDrive文件夹的脚本,不支持SharePoint中的脚本

2. Office Add-ins(基于新版JS API)

已编写任务窗格插件代码实现功能,但无法通过工作表内的按钮触发该函数,且希望保留工作表内多按钮的UI。代码如下:

async function button_click() {
    await Excel.run( async (context) => {

        let my_sheet = context.workbook.worksheets.getItem('my_sheet');
        let my_data = my_sheet.getRange('my_data');
        let request_data = do_stuff(my_data);
        
        let token = await OfficeRuntime.auth.getAccessToken();
        let headers = new Headers();
        headers.set('Authorization', token);
        let response = await fetch(SERVICE_URL,{
            headers: headers,
            body: request_data
        })

        let my_output = my_sheet.getRange('my_output');
        my_output.values = response.body;
        
    })
}

3. VBA

可通过工作表按钮轻松触发操作,但暂无支持Office认证的库,即使是优秀的VBA-Web也仅实现了基于客户端凭证(用户名和密码)的OAuth2。

4. COM及旧式Excel Add-ins

因部署和更新流程繁琐未尝试,优先考虑其他方案。

具体疑问

  • Office Scripts中是否可访问Office.auth?
  • 如何通过工作表按钮调用Office Add-ins中的函数?
  • VBA中是否有等效于OfficeRuntime.auth.getAccessToken的功能?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 19:05:28