Google Sheet定时API请求未覆盖旧数据问题求助
问题分析与解决方案
你的代码存在两个核心问题,导致触发器生效后表格无变化、更新延迟:
IMPORTDATA函数自带约1小时的缓存机制,即使重复设置公式,谷歌表格也会优先读取缓存数据,不会立即请求新内容- 直接重复设置相同公式时,表格会判定内容未变更,不会触发重新计算
修正后的代码
用UrlFetchApp直接获取数据并写入表格,彻底绕过IMPORTDATA的缓存限制:
function updateData() { // 替换为你的有效API地址 const apiUrl = "https://www.parsehub.com/api/v2/projects/tp8m7vXj5TST/last_ready_run/data?api_key=API_KEYf&format=csv"; // 获取API返回的CSV数据 const response = UrlFetchApp.fetch(apiUrl); const csvData = Utilities.parseCsv(response.getContentText()); // 获取目标表格并清空旧数据 const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); sheet.clearContents(); // 将新数据写入表格(从A1单元格开始) if (csvData.length > 0) { sheet.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData); } }
额外检查项
- 确认触发器运行权限:时间驱动触发器需以你的账号身份运行,检查触发器设置中的“选择运行的账号”配置
- 验证触发器时间间隔:是否设置了符合需求的执行频率(比如每15分钟一次)
- 核对API密钥:确保
API_KEYf是有效的ParseHub密钥,避免请求失败
内容的提问来源于stack exchange,提问作者Lissa
相关产品推荐
相关产品推荐

