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

Google Sheet Scripts中ss.getRange()一维数组JSON序列化去嵌套括号方法

Google Sheet Scripts getRange()返回单列数据格式化方案

问题原因

Google Sheet的getRange().getValues()接口返回值固定为二维数组,结构为[行1[列1, 列2...], 行2[列1, 列2...]]。即便仅获取单列数据,每个行对应的子数组也只会包含1个元素,因此序列化后会出现[["1a"],["1b"]]的嵌套结构。

解决方法

  • 最简方案(仅确认是单列场景时使用)
    直接调用数组的flat()方法拍平一层嵌套即可,刚好匹配单列场景的结构要求:

    const singleColValues = ss.getRange(你的单列范围).getValues().flat();
    

    序列化后输出即为["1a","1b"],符合API要求。

  • 自动兼容多列/单列场景
    若需要同时适配单列返回一维、多列返回二维的需求,可先获取当前范围的列数做判断:

    const range = ss.getRange(你的数据范围);
    const values = range.getValues();
    // 单列拍平,多列保留原二维结构
    const formattedValues = range.getNumColumns() === 1 ? values.flat() : values;
    const finalStr = JSON.stringify(formattedValues);
    
  • 低版本运行环境兼容方案
    如果运行环境不支持ES6的flat()方法,可通过map遍历直接取每行的第一个元素:

    const singleColValues = ss.getRange(你的单列范围).getValues().map(row => row[0]);
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 18:39:01