使用脚本在 Google 电子表格中自动递增 ID

Auto-increment ID in Google spreadsheet using Script

我有下面的代码。它应该在 col B 中输入“是”时增加 ID。 它在一定程度上完成了工作,但它总是保持零的数量相同,而当 ID 达到 10s 时它应该减少 1,当它达到 100s 时减少 2 等等。

function onEdit(e){

  var AUTOINC_COLUMN = 0;
  var HEADER_ROW_COUNT = 1;
  
var zeros = "000000";

  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var worksheet   = spreadsheet.getSheetByName("Sheet6");
  var rows        = worksheet.getDataRange().getNumRows()-1;
  var vals        = worksheet.getSheetValues(1, 1, rows+1, 2);
  
  var r = worksheet.getActiveCell();
  if (r.getColumn() == 2 && worksheet.getName()=='Sheet6' && r.getValue() == "Yes") { 
  
  for (var rowx = HEADER_ROW_COUNT; rowx < vals.length; rowx++) {
    try {
      var id = vals[rowx][AUTOINC_COLUMN];
      Logger.log(id);Logger.log((""+id).length ===0);
      if ((""+id).length === 0) {
        
        worksheet.getRange(rowx+1, AUTOINC_COLUMN+1).setValue("STU" + ("0".repeat(zeros.length - rowx.toString.length)) + rowx);
        
      }
    } catch(ex) {
          }
  }
  }
}

似乎由于某种原因,toString 函数没有返回正确的值。有人可以帮忙吗?

在检查您的代码时,我发现您没有使用 toString 作为方法,导致它 return 数字长度始终为 1。

只需将其更改为 toString() 即可。 我已经对它进行了测试,它确实达到了您的预期。

示例输出:

有关其他参考,请参阅 usage