Tengo una hoja de cálculo que necesito una identificación única donde el primer carácter es una letra, los seis caracteres siguientes son la fecha y los 2 últimos son un número único entre 0-99 donde el formato debe estar en 2 caracteres. Traté de incrementar en 1 el recuento de filas, pero el problema es que si alguien elimina una fila, las próximas filas que se ingresen tendrán una ID falsa y duplicada.
gracias de antemano
function test(){ var ss = SpreadsheetApp.openById('XXXXXXXXXXXXXXXXXXXXXXXX').getSheetByName('Sheet1'); var range = SpreadsheetApp.getActiveSheet().getLastRow()+1; var formatDate = Utilities.formatDate(new Date(), "GMT+8", "ddMMyy"); var id = "T"+formatDate+range; ss.appendRow([id]) }Puede crear un contador variable y guardarlo en las propiedades del script. https://developers.google.com/apps-script/guides/properties
En cada carrera, puede obtener el contador, aumentarlo y agregarlo a su próxima identificación. Y guarde el último valor del contador en las propiedades.
Algo como esto:
function generate_ID() { var scriptProperties = PropertiesService.getScriptProperties(); var counter = scriptProperties.getProperty('counter') || 0; var formatDate = Utilities.formatDate(new Date(), "GMT+8", "ddMMyy"); var zero = (counter < 10) ? '0' : ''; var id = "T" + formatDate + zero + counter++; SpreadsheetApp.getActiveSheet().appendRow([id]) if (counter > 99) counter = 0; scriptProperties.setProperty('counter', counter); }