我有这个脚本可以将数据插入电子表格。
我创建了一个方法来生成带有日期和时间值的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>
最佳答案
这个答案怎么样?请将此视为几个答案之一。
模式一:
如果每一行都使用 appendRow()
追加,这个修改怎么样?
来自:
var date = new Date().valueOf();
var idEntrada = 'E' + date
收件人:
var idEntrada = 'E' + ('00' + ws.getLastRow()).slice(-3);
模式二:
如果有几个空行,这个修改怎么样?
来自:
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 作为开发者模式,则可以忽略。
引用资料:
- > getLastRow()
- > slice()
- > getValues()
- > filter()
如果我误解了您的问题并且这不是您想要的方向,我深表歉意。
关于javascript - 如何在 WEB google App Script 上生成 "id"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57742655/