如何在WEB google App脚本上生成“ id”?

时间:2019-09-01 01:40:14

标签: javascript google-apps-script web-applications google-apps-script-web-application

我有这个脚本可以将数据插入电子表格中。

我创建了一种使用日期和时间的值生成ID的方法,该问题太大

示例:E1567301439829

有什么办法可以为每条记录生成唯一的简短ID?

我想留下一个ID,例如:E001,E002,E003 ....

链接Ws:https://docs.google.com/spreadsheets/d/1OokFvWCx-ROkhaLP1nYQPDAu8zgCTeizHHq0ABnBL0A/edit#gid=0

 function doGet(e){
  Logger.log(e.parameter);
  return HtmlService.createHtmlOutputFromFile("index");
  
}

function registrar(name){
  var url = "https://docs.google.com/spreadsheets/d/1OokFvWCx-ROkhaLP1nYQPDAu8zgCTeizHHq0ABnBL0A/edit#gid=0"
  var ss = SpreadsheetApp.openByUrl(url);
  var ws = ss.getSheetByName("Página1");
  
  
  var date = new Date().valueOf();
  var idEntrada = 'E' + date
  
  ws.appendRow([idEntrada,name]);
  
}
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    
    
    <label>Nome</label><input type="text" id="nome">
    
    <button id="btn">Registrar</button>
    
    <script>
    
    document.getElementById("btn").addEventListener("click",salvar);
    
    function salvar(){
    
       var campoNome = document.getElementById("nome").value;
       
       google.script.run.registrar(campoNome);
       
       document.getElementById("nome").value = "";
    }
    
    
    </script>
    
  </body>
</html>

1 个答案:

答案 0 :(得分:1)

这个答案怎么样?请认为这只是几个答案之一。

模式1:

如果每行都使用appendRow()附加,那么此修改如何?

发件人:

var date = new Date().valueOf();
var idEntrada = 'E' + date

收件人:

var idEntrada = 'E' + ('00' + ws.getLastRow()).slice(-3);

模式2:

如果有几行为空,该修改如何?

发件人:

var date = new Date().valueOf();
var idEntrada = 'E' + date

收件人:

var idEntrada = 'E' + ('00' + (ws.getRange("A2:A").getValues().filter(String).length + 1)).slice(-3);

注意:

  • 在您的脚本中,似乎您正在使用Web Apps。在这种情况下,修改脚本时,请重新部署Web Apps作为新版本。这样,最新脚本将反映到Web Apps。如果您将Web Apps用作开发人员模式,则可以忽略。

参考:

如果我误解了你的问题,而这不是你想要的方向,我深表歉意。