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

Google Apps Script中appendRow输出对象地址而非单元格值问题求助

问题原因分析

你看到的[Ljava.lang.Object;@536f3e11其实是Java数组的默认字符串标识,核心问题在于你传给appendRow()的不是它需要的一维数组,而是一个嵌套数组。

为啥会出现这种情况?因为getRange('A2:AP2').getValues()返回的是二维数组——哪怕你只选中了一行,它的结构也是[[单元格A2值, 单元格B2值, ..., 单元格AP2值]],是一个包裹着单个一维数组的数组。

你现在的代码把这个二维数组直接push到array里,导致array变成了[[[A2值, B2值, ...]]](三层嵌套),appendRow()根本无法解析这种结构,所以只能输出数组对象的内存地址字符串。

修复方案

有两种简单的修复方式,选哪种都可以:

方式1:直接提取一维数组

既然getValues()返回的二维数组里只有一行,我们直接取第一行(索引0)的一维数组即可:

var p1ScoreCalc = p1Sheet.getRange('A2:AP2').getValues()[0]; // 直接获取第一行的一维数组
var array = []
//---Checks if submit is checked--\
if(submitCheck == 1){
 //---Checks for what player is submitting---\
 if(playerCheck === "P1"){
 testSheet.appendRow(p1ScoreCalc); // 传入一维数组即可正常写入
 }
}

方式2:展开嵌套数组到你的array中

如果你需要保留array变量做后续操作,可以用展开运算符把二维数组里的元素拆出来:

var p1ScoreCalc = p1Sheet.getRange('A2:AP2').getValues();
//---Array for score records---\
var array = []
//---Checks if submit is checked--\
if(submitCheck == 1){
 //---Checks for what player is submitting---\
 if(playerCheck === "P1"){
 array.push(...p1ScoreCalc[0]); // 把一维数组的所有元素展开添加到array
 testSheet.appendRow(array);
 }
}
验证小技巧

以后遇到数组相关的问题,可以用Logger.log(p1ScoreCalc)打印数组结构,你会清晰看到它是二维的,这样就能快速定位问题啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 16:32:28