Уникальный AutoID для каждой строки в листе Google, который никогда не меняется, даже если я вставляю новые строки - PullRequest
0 голосов
/ 12 июня 2019

Я нашел этот код с помощью поиска в Google (https://blog.cloudstitch.com), и он работает, но мне нужно настроить его для двух дополнительных вещей:

  1. Мне нужно, чтобы число было тремя цифрами - гдев коде я устанавливаю длину?
  2. Если я вставлю строку, идентификатор будет дубликатом соседней строки.

Для меня важно, чтобы после того, как идентификатор былбыло назначено, оно никогда не изменится.

 function AutoID() {

  var AUTOINC_COLUMN = 0;
  var HEADER_ROW_COUNT = 1;

  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var worksheet   = spreadsheet.getSheetByName("Sheet1");
  var rows        = worksheet.getDataRange().getNumRows();
  var vals        = worksheet.getSheetValues(1, 1, rows+1, 2);

  for (var row = HEADER_ROW_COUNT; row < vals.length; row++) {
    try {
      var id = vals[row][AUTOINC_COLUMN];
      Logger.log(id);Logger.log((""+id).length ===0);
      if ((""+id).length === 0) {
        // Here the columns & rows are 1-indexed
        worksheet.getRange(row+1, AUTOINC_COLUMN+1).setValue(row);
      }
    } catch(ex) {
      // Keep calm and carry on
    }
  }
}

Ссылка на Google Sheet:

https://docs.google.com/spreadsheets/d/1nN8Iysc-A0cihSvJ-vRse1KDrmNNpj9Zv_y3VYT9S-E/edit?usp=sharing

...