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

Google Apps Script中appendRow()插入数据显示[Ljava.lang.Object;@xxx问题

问题分析与解决

问题出在doGet函数的参数获取逻辑上:Google Apps Script中e.parameters返回的每个参数都是数组类型(哪怕请求里仅传递了一个对应参数值)。比如p.ID实际是["xxx"]这样的数组,而非单个字符串或数字。当你把这些数组直接放进appendRow的参数数组时,Sheets会将数组对象转为默认的字符串表示,也就是你看到的[Ljava.lang.Object;@xxxx格式。

而setValue(username)能正常执行,是因为setValue方法会自动处理数组参数,默认取数组的第一个元素完成赋值。

修复后的代码

function doGet(e){
  var p = e.parameters;
  try {
    if ("username" in p) { // user info get
      // 取每个参数数组的第一个元素,转为单个值
      let id = p.ID[0];
      let username = p.username[0];
      let time = p.time[0];
      let email = p.email[0];
      let roles = p.roles[0];
      let value = [id,username,time,email,roles];
      userSheet.appendRow(value);
      userSheet.getRange("F38").setValue(username)
      return ContentService.createTextOutput(username);
    }
  } catch (e){
    return ContentService.createTextOutput("Error: " + e.message);
  }
}

修改后,每个变量都是单个值,传入appendRow即可正常插入符合预期的数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 19:47:15