gpt4 book ai didi

javascript - 如何将数组写入电子表格。 setValues 抛出 "cannot convert array to object"

转载 作者:行者123 更新时间:2023-11-30 11:03:28 29 4
gpt4 key购买 nike

我正在尝试将我的数组写入电子表格,但我做错了。我读过很多帖子说要做我正在做的事情,但没有用。请参阅下面我的最后一行代码

最后一行代码
'''consol_sheet.getRange(2,1,x,10).setValues(final_values);'''我得到一个错误,我

"cannot convert array to object"

function iterateSheets() 
{
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('filesSheet');
sh.clear();
var folder=DriveApp.getFolderById('1axTLHOBPhl5_u7ngFOxViHg14OSw7pVC');//replace id with actual id of folder
var files=folder.getFilesByType(MimeType.GOOGLE_SHEETS);
var consol_sheet = SpreadsheetApp.openById('18JnkQYa1L-FhXFmKJBrqJ6GI7BBO-V8QAVKP8PLLoXo').getActiveSheet();
var x=2;
var z=0;
var final_values = new Array(50000);

while(files.hasNext())
{
var file=files.next();
var ts=SpreadsheetApp.openById(file.getId());
var allShts=ts.getSheets();

for(var i=0;i<3;i++) //allShts.length
{
var consol_values = allShts[i].getRange(8,1,40,26).getValues(); //.getRange(8, 1, 1, 1).getValues();
var headers = allShts[i].getRange(7,6,1,20).getValues(); //.getRange(8, 1, 1, 1).getValues();
var position= allShts[i].getRange("B1").getValue();
var period = allShts[i].getRange("B2").getValue();
var email = allShts[i].getRange("B3").getValue();

for (var z = 0;z<20;z++)//
{

for (var y= 0;y<40;y++)
{
if (consol_values[y][i] != "")
{
/* consol_sheet.getRange(x,1).setValue(consol_values[y][0]); //AI pack
consol_sheet.getRange(x,3).setValue(consol_values[y][1]); //measure
consol_sheet.getRange(x,4).setValue(email);
consol_sheet.getRange(x,5).setValue(position);


final_values[x] = [];
final_values[x][0] =consol_values[y][0]; //AI pack
//blank
final_values[x][2] =(consol_values[y][1]); //measure
final_values[x][3] =(email);
final_values[x][4] =(position);
final_values[x][5] =(headers[0][z]);//location
final_values[x][6] =1;
final_values[x][7] =(period);
final_values[x][8] =(consol_values[y][3]); //price
final_values[x][9] =(consol_values[y][z+5]); //fcst

if (consol_values[y][z+5] != "")
{
final_values[x][10] =(consol_values[y][25]); //fcst value
}


x = Number(x)+1 //row count for consolidation output

}
}
}
}
}


consol_sheet.getRange(2,1,x,10).setValues(final_values);

}

这个论坛对我达到这一点非常有帮助,现在我又遇到了一个障碍来完成这个项目。

最佳答案

setValues 的参数应该是一个数组数组(2D 数组),其中所有内部数组具有相同数量的元素,并且这些元素应该是字符串、数字或 Date 对象,不能'不能为空元素。

注意:

如果你的数组是这样的

[
[1,,'orange'], // 2nd element of this inner array is empty
, // 2nd element of the outer array is empty
[] // This array is empty
]

在内部数组的每个“空白点”上添加缺少的内部数组和 ''。生成的数组应如下所示:

[
[1,'','orange'],
['','',''],
['','','']
]

(在每个空元素位置添加一个空字符串'')。

相关

关于javascript - 如何将数组写入电子表格。 setValues 抛出 "cannot convert array to object",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56636115/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com