在Google电子表格中搜索相同的值,并将其附加到GAS的下一列

时间:2015-05-26 13:24:24

标签: google-apps-script append spreadsheet

我有一个Google电子表格,如下所示:

ID   |   winkelName  |   26/05/2015   |   
 1   |   Foo         |                |   
 2   |   Bar         |                |   
 3   |   Foo2        |                |   
 4   |   Bar2        |                |   

我正在尝试读取和编写具有以下结构的对象数组:

history[i].storeName
history[i].checkIns

我想要做的是在列日期(2015年5月26日)下的同一行写下所有签到数(具有相同的winkelName)。但我仍然坚持认为实现这一目标的最佳途径是什么?

这是我的第一次尝试:

function writeHistory(history) {
  var sheet = historySheet.getSheets()[0];
  historySheet.setActiveSheet(sheet);
  var nextRow = sheet.getLastRow(); // get next row
  var rows = sheet.getDataRange().getValues();
  var lastColumn = sheet.getLastColumn();
  sheet.insertColumnAfter(lastColumn);
  lastColumn++;
  sheet.getRange(1, lastColumn).setValue(new Date());

  var column = sheet.getLastColumn();
   for(i in rows) {
    if(i != 0) {
     if(rows[i][1] == history[i].winkelName) {
       sheet.getRange(i, column).setValue(history[i].checkIns); // this is not fully working
     }
    }
   }   
 }

1 个答案:

答案 0 :(得分:1)

在Google电子表格中,您可以一次编写一系列单元格。为此,请创建一个包含一列的多维数组,并为每一行创建另一个维度,并在每一行内创建要写入的每个单元格的维度。

循环检查,在数组中设置单元格值并使用sheet.getRange(1,column-index).setValue([your array])写入值;

同时检查:Google's best practices on dealing with range values