使用GAS将列添加到工作表

时间:2017-12-07 21:40:21

标签: google-apps-script

enter image description here

在我的Google表格中,包含数据的最后一列是“S”。我正在尝试创建一个循环遍历行的脚本,如果S中的值以“FIN”开头,则在T列中放置'test'

function daysSinceContact() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var mainSheet = ss.getSheetByName("test_sheet");
  var main_rows = mainSheet.getDataRange().getValues();

  var updated = [];
  for (i in main_rows) {
    var row = main_rows[i]
       if ((row[18].substring(0, 3) == 'FIN') ) {
         Logger.log(row[18])
           row[19]=='test'
       }

    updated.push(row);
  }
  var main_range = mainSheet.getDataRange();
  mainSheet.getDataRange().setValues(updated);

}

然而,当我运行时,我在T栏中看不到任何内容。我做错了什么?

1 个答案:

答案 0 :(得分:1)

这些修改怎么样?

修改要点:

  • Index Item Start_Date End_Date 0 A 2017-10-01 2017-10-13 1 B 2017-10-07 2017-10-15 2 B 2017-10-18 2017-10-25 3 C 2017-10-09 2017-10-30 4 D 2017-11-01 np.Nat 5 E 2017-11-03 2017-11-09 6 E 2017-11-13 np.Nat 替换为'test'时,它会使用row[19]
    • @Crazy Ivan
    • 指出了这一点
  • 对于没有row[19]='test'的行,'FIN'会添加到''
    • 由此,二维阵列中每个元素的长度变得相同。
  • row[19]检索的范围与当前数据的范围不同。因为添加了一列。
    • 因此使用了getDataRange()

以上反映的修改后的脚本如下:

修改后的脚本:

getRange(1, 1, updated.length, updated[0].length)

如果我误解了你的问题,请告诉我。我想修改它。