使用Google Apps脚本自动为Google表格生成参考编号

时间:2018-04-08 13:04:56

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

每次从Google表单自动插入新数据时,我都会尝试生成参考号。 我想生成格式为TMS180001,直到最大可能的参考编号为TMS189999。我无法想象如何将值/字符串格式化为0001而不是1,当我在下面运行代码时没有发生任何事情。

function onFormSubmit(e) {
var Time = e.values [0]; //column 1 timestamp
var TMSrefnum = [10]; //column 1 till 9 are other information while 
                      //column 10 is the reference number

if (Time = true); //if timestamp has value then add reference
                  //number to column 11
var i = 1 ; i < 9999 ; i++;
TMSrefnum = "TMS18" + toString(i);
}

3 个答案:

答案 0 :(得分:0)

查看问题How to output integers with leading zeros in JavaScript的答案。

您需要在onFormSubmit()函数之外创建一个额外的函数(或包含Polyfill)。

function pad(num, size) {
  var s = num+"";
  while (s.length < size) s = "0" + s;
  return s;
}

然后你会打电话给

TMSrefnum = "TMS18" + pad(currentEntryNumber, 4);

答案 1 :(得分:0)

零填充

对于零填充,请使用您自己的功能,例如

Number.prototype.pad = function(size) {
    var s = String(this);
    while (s.length < (size || 2)) {s = "0" + s;}
    return s;
}


(9).pad();  //returns "09"

(7).pad(3);  //returns "007"

这将允许您在脚本中的任何.pad()上执行Number方法。

或者编写一个看起来像这样的方法:

function pad(num, size) {
    var s = "000000000" + num;
    return s.substr(s.length-size);
}


pad(98);   // returns "000000098"

来源:

答案 2 :(得分:0)

我设法从下面的代码中产生了参考号。

var sheet1 = ss.getSheets()[0];

function pad(num, size) {
var s = num + "";
while (s.length < size) s = "0" + s;
return s;
}  

var valuerange = sheet1.getRange("A1:A").getValues();
var lastrownumber = valuerange.filter(String).length-1;
var TMSNUM = "TMS18" + pad(lastrownumber, 4);