javascript - 如何为电子表格设置谷歌 GAS 数组的值

标签 javascript google-apps-script google-sheets-api

我已经使用谷歌脚本一周了,我已经尽可能多地搜索以获得答案。有人可以帮帮我吗?我编写了一个简单的脚本来根据类(class)编号的最后三位数字(即 PSY-250-400)评估类(class)是否在线。该脚本运行良好,我将结果插入数组的末尾。我不知道如何写回谷歌表格。以下是我所拥有的。目前它将根据第一个结果(在线类(class))设置值。所以所有值都设置为在线。我现在正在 7 行上运行它,但需要在 20,000 行上运行它。

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);

           }
       }
   }

最佳答案

要记住的重要一点是,Range 的尺寸必须等于 Array[][] 的精确尺寸。这个数组必须是二维的!否则你会得到一个错误,指出 setValues() 方法需要一个 Object[][],而不是一个数组。

您正在尝试设置一个简单的数组。另外,您将使用的方法是 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);

}

关于javascript - 如何为电子表格设置谷歌 GAS 数组的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29322774/

相关文章:

javascript - 我如何用 php 显示 html 输入框值

javascript - 与 promise then function 混淆

php - google sheets 将数据附加到 sheet api 返回 401 身份验证错误

javascript - 谷歌表格/Javascript : Unable to search for a specific string in an array using indexOf()

javascript - jQuery 无法通过 ID 找到

JavaScript 计算问题 - NaN 消息

javascript - 获取当前月份的 Google Apps 脚本(很多 IF 语句)

javascript - 使用 javascript 时 Google Web App 未打开 http 链接

javascript - 在两个不同的工作表中找到具有相同列的选定行并将其从其中删除

angular - Angular 中的 Google 表格 API