use*_*736 4 arrays multidimensional-array google-sheets google-apps-script
我试图将addArray []的数据立即附加到列A的末尾.但是,我的数组不是多维的,以便能够使用此方法:
这是我添加到数组的方式:
var toAdd=[];
var thisurl="red apple http://awebsite.com/1.jpg";
toAdd.push(thisUrl);
Run Code Online (Sandbox Code Playgroud)
这就是我想立刻追加数组的方式
function AddToSpreadsheet()
{
var data = SpreadsheetApp.getActiveSheet().getRange('A12:A').getValues();
var toAdd=["red apple http://awebsite.com/1.jpg",
"green apple http://1awebsite.com/2.jpg",
"red apple http://1awebsite.com/3.jpg",
"rotten apple http://rottenApple.com"];
if(toAdd.length > 0){
for(i = 0; i < data.length; ++i){
if(data[i][0] == ""){break;}
}
SpreadsheetApp.getActiveSheet().getRange(12+i, 1, toAdd.length, 1).setValues(toAdd);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我使用上面的代码我得到这个错误:
Cannot convert Array to Object[][]. (line
Run Code Online (Sandbox Code Playgroud)
我的addArray不是多维数组!如何将它转换为多维数组,如下例所示我可以使用上面的代码?
多维数组示例:
var toAdd=[["red apple http://awebsite.com/1.jpg"],
["green apple http://1awebsite.com/2.jpg"],
["red apple http://1awebsite.com/3.jpg"],
["rotten apple http://rottenApple.com"]];
Run Code Online (Sandbox Code Playgroud)
编辑:我在开始时转换了数组并且工作了!
var values_array=["red apple http://awebsite.com/1.jpg",
"green apple http://1awebsite.com/2.jpg",
"red apple http://1awebsite.com/3.jpg",
"rotten apple http://rottenApple.com"];
var toAddArray = [];
for (i = 0; i < toAdd.length; ++i){
toAddArray.push([toAdd[i]]);
}
...........
Run Code Online (Sandbox Code Playgroud)
这样我将整个新数组插入到A列:
............
SpreadsheetApp.getActiveSheet().getRange(12+i, 1, toAddArray.length, 1).setValues(toAddArray);
}
Run Code Online (Sandbox Code Playgroud)
你需要"转置"数组.您可以通过创建新数组并将值附加为具有一个值的数组来实现.
在你调用setValues(toAdd)之前试试
var toAddArray = [];
for (i = 0; i < toAdd.length; ++i){
toAddArray.push([toAdd[i]]);
}
Run Code Online (Sandbox Code Playgroud)
并用.替换设定值调用
SpreadsheetApp.getActiveSheet().getRange(12+i, 1, toAdd.length, 1).setValues(toAddArray);
Run Code Online (Sandbox Code Playgroud)
设定值函数需要矩阵作为输入.由于没有原生矩阵,因此需要一个数组数组,其中每个子数组具有相同的长度且不包含数组.
"矩阵"中的每个数组都是一行,每个数组的每个元素都进入一列.
如果您想要一维数组中的一列行,则需要一个具有单元素数组的数组.如果要编写列,则创建一个包含所有值的数组的数组.