使用本地Office.js时Excel API Set 1.16功能不可用问题排查
问题原因及解决方案
可能的原因
- @microsoft/office-js v1.1.93版本与Excel API Set 1.16不匹配,该npm版本并未包含1.16版本的API定义及实现。
- 本地npm缓存或项目遗留文件导致实际加载的office.js并非最新安装的版本。
- HTML中引用的office.js路径错误,加载了旧版本的离线文件。
解决步骤
验证并升级npm包
打开node_modules/@microsoft/office-js/dist/office.d.ts,搜索valueAsJson,如果无结果,说明当前版本不支持该API。执行以下命令升级到最新版:npm install @microsoft/office-js@latest升级完成后再次检查类型定义文件,确认是否包含
valueAsJson。清理本地缓存与依赖
如果升级后仍无效,清理npm缓存并重新安装依赖:npm cache clean --force rm -rf node_modules package-lock.json npm install确认文件引用路径
确保HTML中引用的office.js是从新安装的npm包目录复制而来。手动将node_modules/@microsoft/office-js/dist/下的所有文件复制到项目的/assets/office-js/目录,覆盖旧文件,避免路径指向错误的旧版本。在Manifest中指定API版本要求
在插件的manifest.xml文件中,添加对Excel API 1.16的明确要求,确保加载对应版本的API:<Requirements> <Sets DefaultMinVersion="1.16"> <Set Name="ExcelApi" MinVersion="1.16"/> </Sets> </Requirements>同时在代码初始化阶段添加版本检查,确保运行环境支持:
Office.initialize = () => { Excel.run(async (context) => { if (!context.requirements.isSetSupported('ExcelApi', '1.16')) { console.error('当前Excel版本不支持API Set 1.16'); return; } // 后续业务代码 }).catch(err => console.error(err)); };
内容的提问来源于stack exchange,提问作者Maximilian Sieber
相关产品推荐
相关产品推荐

