创建,更新,删除Google工作表的时间戳

时间:2017-11-15 08:32:44

标签: google-apps-script google-sheets timestamp

给出以下脚本:

function onEdit(event) {
  var s = event.source.getSheetByName('Sheet1');
  var r = s.getActiveCell();
  if( r.getColumn() < 11 ) { 
    var row = r.getRow();
    var time = new Date();
    time = Utilities.formatDate(time, "GMT+2:00", "dd/MM/yy, hh:mm:ss");
    s.getRange('L' + row.toString()).setValue(time);
  };
 };

它完美无缺。我想念的只有两个特点:

  1. 在第一次编辑时,在K列中存储创建时间戳;
  2. 如果所有行都为空,则删除给定的时间戳。

1 个答案:

答案 0 :(得分:1)

尝试一下-

function onEdit(event) {
  var s = event.source.getSheetByName('Sheet1');
  var r = s.getActiveCell();
  if( r.getColumn() < 11 ) {

    var row = r.getRow();
    var time = new Date();
    time = Utilities.formatDate(time, "GMT+2:00", "dd/MM/yy, hh:mm:ss");


    // 2. Delete given timestamps if all rows are empty.
    var values = s.getRange('A' + row.toString() + ':' + 'J' + row.toString()).getValues()[0]
    var filtered = values.filter(function (el) {
      return el != '';
    });
    if (filtered.length == 0) {
      s.getRange('A' + row.toString() + ':' + 'L' + row.toString()).clearContent();
    }

    s.getRange('L' + row.toString()).setValue(time);

    // 1. Store a create timestamp in K column when the first edit was made
    if (s.getRange('K' + row.toString()).getValue() == '') {
      s.getRange('K' + row.toString()).setValue(time);  
    }

  }
}