You need to enable JavaScript to run this app. 网页版Excel中Office Script执行Fetch调用外部API的异常问题
优惠活动
大模型
产品
解决方案
定价
更多

网页版Excel中Office Script执行Fetch调用外部API的异常问题

网页版Excel Office Script调用外部Fetch API的异常排查

问题基本背景

用户在网页版Excel的「Automate」选项卡下创建新Office脚本,参照微软官方文档编写了核心测试代码,代码逻辑为调用公共测试API获取数据:

async function main(workbook: ExcelScript.Workbook): Promise<void> {
  let fetchResult = await fetch('https://jsonplaceholder.typicode.com/todos/1');
  let json = await fetchResult.json();
}

已观测的异常表现

  • 代码执行到fetchResult.json()环节持续触发类型类报错:Office Script编辑器无法为对应变量推断有效数据类型,提示推断过程可能引发非预期运行错误,要求为变量标注明确类型;即便通过编辑器Quick Fix入口自动补全类型,核心报错也不会消失
  • Chrome开发者工具网络面板显示,目标API请求长期处于挂起状态,提示“CAUTION: request is not finished yet”,请求未走完完整生命周期

核心问题成因

  • 网络请求层面:网页版Excel的Office Script并非在用户本地浏览器上下文发起fetch请求,而是在Microsoft 365云端沙箱环境内运行。沙箱的出口网络规则、CORS校验逻辑和用户本地浏览器存在差异,一旦被组织出网代理、目标API的跨域策略拦截,就会表现为请求长期挂起、无实际返回;这类阻断和单个用户的本地操作、个人账户配置无关,是租户级的默认网络策略导致的。
  • 类型校验层面:Office Script内置的TypeScript运行环境未内置通用Web API的类型定义,fetch返回对象的json()方法默认返回类型为unknown,在没有明确类型声明的情况下,编辑器会持续触发类型推断告警;即便自动补全类型,只要底层请求没有拿到实际返回值,告警逻辑也无法真正消除。

可尝试的解决方向

  • 优先验证沙箱网络连通性:将fetch请求的目标替换为Microsoft 365域名下允许匿名访问的测试端点,确认脚本运行时是否能正常获取返回值,排除外部API本身的跨域限制、组织出网策略阻断问题
  • 手动为返回值变量定义匹配业务结构的明确接口类型,绕开编辑器的自动类型推断逻辑,不要依赖Quick Fix生成的宽泛默认类型
  • 确认租户级脚本权限配置:Office Script默认可能关闭跨域访问外部Web资源的能力,这类全局配置仅能由组织Office管理员调整,非管理员用户无法自行修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 09:54:04