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

如何正确使用Sheets.Spreadsheets.Values.update()?性能与报错咨询

Google Sheets 批量写入数组:API效率确认与错误修复

关于写入速度的结论

没错,Sheets.Spreadsheets.Values.update()确实比setValues()更快。尤其是处理你这种7万行35列的超大量数据时,前者直接调用Google Sheets REST API,跳过了Apps Script内置服务的中间处理层,批量写入的效率提升非常明显。

代码报错修复

你遇到的Invalid JSON payload错误,是因为API要求的请求体格式不对。Sheets.Spreadsheets.Values.update()的第一个参数必须是包含values字段的对象,而不是直接传入数组变量名。

正确的数组处理与代码示例

  1. 确保数组格式正确:updatedArr必须是二维数组(对应表格的行和列),哪怕只有一行数据也要套成二维结构,比如[[单元格1值, 单元格2值, ...]]。
  2. 包装数组为API要求的结构:把数组放到values字段中传入。

修正后的代码:

Sheets.Spreadsheets.Values.update(
  { values: updatedArr }, 
  tss.getId(), 
  `'${clickerDataSht.getName()}'!A1`, 
  { valueInputOption: "USER_ENTERED" }
);

额外优化建议

  • 如果不需要Google Sheets自动解析公式、格式转换,把valueInputOption改成"RAW",能进一步提升写入速度。
  • 若要更精准控制写入范围,可以明确指定结束单元格(比如'Sheet1'!A1:AI70000),避免API自动推断范围的额外开销。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 21:04:59