Google Sheets调用ImportJSON导入加密货币数据报url无值及#NAME?错误求解
问题解决步骤
1. 解决表格公式返回#NAME?报错
该报错的核心原因是Google Sheets无法识别ImportJSON自定义函数,按以下顺序排查:
- 确认脚本绑定关系正确:从当前使用的表格顶部导航栏点击「扩展程序 > Apps Script」进入脚本编辑页,将ImportJSON相关代码粘贴到该项目中,保存时设置任意合法的项目名称即可
- 修正函数调用写法:脚本中定义的函数名为
ImportJSON(首字母大写),将表格中的公式修改为=ImportJSON("https://api.coingecko.com/api/v3/coins/markets?vs_currency=eur&ids=bitcoin") - 完成授权并刷新页面:首次使用自定义函数时会弹出授权提示,按指引完成授权后,刷新整个Google Sheets页面再重新调用公式即可。
2. 解决Apps Script中Exception: Attribute provided with no value: url报错
该报错由两个常见触发原因导致,对应修复方案如下:
- 不要直接在Apps Script编辑器点击运行按钮测试函数:
ImportJSON和ImportJSONAdvanced都依赖表格公式传入的url参数,直接在编辑器运行时没有传入任何参数,url变量为空就会触发该报错,函数测试请直接在表格中输入公式调用即可 - 优化脚本参数容错逻辑:原代码中
fetchOptions传null不符合UrlFetchApp.fetch的参数要求,同时缺少url合法性校验,修改后的代码如下:
function ImportJSONAdvanced(url, fetchOptions, query, parseOptions, includeFunc, transformFunc) { // 新增url参数校验 if (!url || typeof url !== 'string' || url.trim() === '') { return "无效的API请求地址" } // 修复fetchOptions空值问题 const validFetchOptions = fetchOptions || {muteHttpExceptions: true} var jsondata = UrlFetchApp.fetch(url, validFetchOptions); var object = JSON.parse(jsondata.getContentText()); return parseJSONObject_(object, query, parseOptions, includeFunc, transformFunc); }
修改完成后保存脚本,刷新表格即可正常拉取CoinGecko的加密货币数据。
内容的提问来源于stack exchange,提问作者user3774288
相关产品推荐
相关产品推荐

