有没有一种方法可以在Google表格上自动递增(QA)的ID代码?

时间:2019-03-24 12:03:00

标签: google-apps-script google-sheets

我需要设置Google表格以将ID合并到ID列中

这是我设计的Google表单。

我希望它像这样 = if(isblank(H3),“”,减号(H3,G3))  但输出如下 我说期望示例的输出:QA + Date + 001 即:QA20190324001

1 个答案:

答案 0 :(得分:0)

下面的代码读取整个工作表,然后检查每行中的ID。如果不存在ID,则根据QA+Date+Number公式创建一个。然后将行写回到工作表。试试这个。

var AUTOINC_COLUMN = 0; // which col to increment
var HEADER_ROW_COUNT = 1; // how many header rows

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName('Sheet1');
var range = sheet.getDataRange(); // get sheet range
var values = range.getValues(); // get sheet values

var today = new Date(); // todays date
var autoIncStart = 1; // start auto increment at this number
var lengthOfID = 3; // length of ID
var prefixID = 'QA'; // ID prefix

for (var row = HEADER_ROW_COUNT; row < values.length; row++) {
  var id = values[row][AUTOINC_COLUMN];
  if (('' + id).length === 0) {
    // no id present, create one and set
    // comment out below lines if no operation is needed when id is empty
    id = prefixID;
    id += today.getFullYear() + zeroPad(today.getMonth() + 1, 2) + today.getDate();
    id += zeroPad(autoIncStart, lengthOfID);
    values[row][AUTOINC_COLUMN] = id;
    autoIncStart++;
  }
}

// write values back to sheet
range.setValues(values);

// zero pad a number up to given length
function zeroPad(num, length) {
  var str = '' + num;
  while (str.length < length) str = '0' + str;
  return str;
}