我正在构建一个包含整数值的数组,并试图一次性将其写入Google电子表格:
var myArray=new Array();
for (i=1;i<=100;i++){
myArray[i]=i;
};
ss.getRange(8,4,1,100).setValue(myArray);
这是在正确的单元格上写,但每个单元格的内容是:
[0.0, 1.0, 2.0, 3.0, 4.0, 5.0, ...]
答案 0 :(得分:3)
您必须将myArray添加到另一个数组中。按照以下方式进行,
var data = [];
var myArray=new Array();
for (i=0;i<100;i++){ // You have to change index to 0 here.
myArray[i]=i;
};
data.push(myArray);
ss.getRange(8,4,1,100).setValues(data);
答案 1 :(得分:2)
尝试这个,它为您提供100个单元格,其值为0到99:
var myArray = [];
for (i=0 ; i<100 ; i++){
myArray[i] = i;
}
sheet.getRange(8, 4, 1, 100).setValues([myArray]);
这对您不起作用的一个原因是您使用的是setValue()而不是setValues()。另一个原因是,如果您一直在使用setValues(),那么您可能会尝试将1D数组强制为基本上是2D数组的数组。要解决这个问题,请务必使用setValues([myArray])
,它使用一维myArray制作2D数组,而不是setValue(myArray)
。
答案 2 :(得分:1)
根据您希望如何编写数据,您可以通过两种方式执行此操作:两者都将创建数组数组(也称为矩阵2D数组):
2个代码示例:
function writeToSheetRows(){
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var myArray=new Array();
for (i=1;i<=100;i++){
myArray.push([i]);
}
ss.getRange(8,4,myArray.length,myArray[0].length).setValues(myArray);
}
function writeToSheetCols(){
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var myArray=new Array();
for (i=1;i<=100;i++){
myArray.push(i);
}
ss.getRange(8,4,1,myArray.length).setValues([myArray]);
}
答案 3 :(得分:0)
你可以这样做:
function write(){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('-sheet name-');
var myArray=new Array();
for (i=0;i<100;i++){
myArray[i]=i;
}
sheet.getRange(8,4,1,100).setValues([myArray]);
}
希望有所帮助!