Javascript 如何为电子表格设置google GAS数组的值
我已经使用谷歌脚本一个星期了,我已经尽可能多地搜索以得到答案。有人能帮我吗?我编写了一个简单的脚本,根据课程编号的最后三位数字(即PSY-250-400)评估课程是否在线。脚本运行良好,我将结果推送到数组的末尾。我不知道如何写回谷歌表单。下面是我所拥有的。目前,它将根据第一个结果(在线课程)设置值。因此,所有值都设置为“联机”。我现在在7行上运行它,但是需要在20000行上运行它Javascript 如何为电子表格设置google GAS数组的值,javascript,google-apps-script,google-spreadsheet-api,Javascript,Google Apps Script,Google Spreadsheet Api,我已经使用谷歌脚本一个星期了,我已经尽可能多地搜索以得到答案。有人能帮我吗?我编写了一个简单的脚本,根据课程编号的最后三位数字(即PSY-250-400)评估课程是否在线。脚本运行良好,我将结果推送到数组的末尾。我不知道如何写回谷歌表单。下面是我所拥有的。目前,它将根据第一个结果(在线课程)设置值。因此,所有值都设置为“联机”。我现在在7行上运行它,但是需要在20000行上运行它 function onlineonly(online){ var sheet = SpreadsheetApp
function onlineonly(online){
var sheet = SpreadsheetApp.getActiveSheet();
var students = sheet.getRange('A2:D7').getValues();
var online = ["400","401","403","404","600"];
var m;
var section;
for(var i=0; i<students.length; ++i){
section = students[i][3].substring(8,13);
for(var j = 0;j<online.length; j++){
if(section===online[j]){
section = m;
}
}
if(section === m){
students[i].push("online");
} else {
students[i].push("not online");
}
var method = [];
for(var k = 0; k<students.length; k++){
if(students[i][4]=== "online"){
method = "online";
} else {
method = "in person";
}
sheet.getRange('c2:c7').setValue(method);
}
}
}
仅在线功能(在线){
var sheet=SpreadsheetApp.getActiveSheet();
var students=sheet.getRange('A2:D7').getValues();
在线风险价值=[“400”、“401”、“403”、“404”、“600”];
var-m;
var截面;
对于(var i=0;i需要记住的重要一点是,范围的维数必须等于数组[][]的精确维数。此数组必须是二维的!否则您将得到一个错误,即setValues()方法需要的是对象[],而不是数组
您正在尝试设置一个简单数组。此外,您将使用的方法是setValues(),而不是setValue()
您的代码有点难以理解,因此这是一个模式示例:
function writeOutValues() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getRange("C2:C7");
var values = range.getValues();
//remember, a 2d array is a grid of values that corresponds to the grid of the range like so: values[row][column]
//so in this range, values[0][0] = C2, values[1][0] = C3, etc.
values[0][0] = "New Value";
values[1][0] = "Another one";
//to set value,
range.setValues(values);
}
只需移动内循环即可
for(var k=0;k
function onlineonly()
{
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var students = sheet.getRange('A2:C4').getValues();
var online = ["400","401","403","404","600"];
var m;
var section;
for(var i=0; i<students.length; ++i)
{
section = students[i][1].slice(8,11);
for(var j = 0;j<online.length; j++)
{
if(section===online[j])
{
section = m;
}
}
if(section === m)
{
students[i].push("online");
}
else
{
students[i].push("not online");
}
}
var range = sheet.getActiveSheet().getRange("C2:C4");
var method = range.getValues();
for(var k = 0; k<students.length; k++)
method[k][0] = students[k][3]==="online"?"online":"in person";
Logger.log(method[0][0] +" "+method[1][0] +" "+ method[2][0])
range.setValues(method);
}