Al importar contenido de Gmail a una hoja de cálculo Si hay un elemento específico que se repite Este es un script de aplicación de Google donde Lastrow se agrega automáticamente.
Quiero especificar la posición de columna deseada para cada elemento.
Por favor, ayúdame.
function myFunction() { var threads = GmailApp.search('label:extra is:unread'); var messages = GmailApp.getMessagesForThreads(threads); var sheet = SpreadsheetApp.getActive().getSheetByName('2021'); for(var i=0; i<messages.length; i++) { var plainBody = messages[i][0].getPlainBody(); var lastRow = sheet.getLastRow(); const regex=/ex0:(.*)\n(.*)ex1:(.*)\n(.*)ex2:(.*)\n/g; if(!plainBody.match(regex)) { continue; } var data = plainBody.match(regex).map(x=> { var a0 = (/ex0:(.*)/).test(x)? RegExp.$1 : '0'; var a1 = (/ex1:(.*)/).test(x)? RegExp.$1 : '0'; var a2 = (/ex2:(.*)/).test(x)? RegExp.$1 : '0'; return [a0, a1, a2]; }); sheet.getRange(lastRow+1,1,data.length,data[0].length).setValues(data); } threads.forEach(function(thread) { thread.markRead(); Utilities.sleep(100); }); }Como una suposición. Suponga que sus columnas deseadas son: B, D, F. Luego intente cambiar esta línea
sheet.getRange(lastRow+1,1,data.length,data[0].length).setValues(data);con este:
sheet.getRange('B' + lastRow).setValue(data[0]); sheet.getRange('D' + lastRow).setValue(data[1]); sheet.getRange('F' + lastRow).setValue(data[2]);