var timestamp = e.values[0]; var recipientName = e.values[1]; var firstLineOfAddress = e.values [2]; var secondLineOfAddress = e.values[3]; var thirdLineOfAddress = e.values[4]; var postcode = e.values [5]; var recipientEmail = e.values[6]; var todaysDate = e.values[7]; var invoicenNumber = e.values[8]; var dueDate = e.values[9]; var item1Description = e.values [10]; var item1Qty = e.values [11]; var item1UnitPrice = e.values [12]; var item1Amount = e.values[13]; var templateFile = DriveApp.getFileById("1VjJI3VUNSJDQuv8NsgSfSugIfi3c_ev4cGpbk5_LQ3I"); var templateFolder = DriveApp.getFolderById("1MsmTVhosVz0S4Nquz2qMr-SZtYZYyV9S"); var copy = templateFile.makeCopy(recipientName, templateFolder); var doc = DocumentApp.openById(copy.getId()); var body = doc.getBody(); body.replaceText("{{RECIPIENT NAME}}", recipientName); body.replaceText("{{FIRST LINE OF ADDRESS}}", firstLineOfAddress); body.replaceText("{{SECOND LINE OF ADDRESS}}", secondLineOfAddress); body.replaceText("{{THIRD LINE OF ADDRESS}}", thirdLineOfAddress); body.replaceText("{{Postcode}}",postcode); body.replaceText("{{EMAIL}}",recipientEmail); body.replaceText("{{DATE}}",todaysDate); body.replaceText("{{REF}}", invoicenNumber); body.replaceText("{{DUEDATE}}", dueDate); body.replaceText("{{desc1}}", item1Description); body.replaceText("{{qty1}}", item1Qty); body.replaceText("{{unitprice1}}", item1UnitPrice); body.replaceText("{{amount1}}", item1Amount) doc.saveAndClose(); }Todavía estoy aprendiendo googleappscript/java, así que disculpas por sonar tonto. Estoy usando un formulario para producir una factura; sin embargo, me gustaría que la variable de e.values[10] pueda borrarse del documento que produce si se deja en blanco.
Entonces, si e.value está en blanco, entonces body.replace text debería reemplazarlo con nada. Si se completa e.value, entonces body.replace text debe completarse con la respuesta adecuada.
¿Alguna idea de cómo puedo hacer esto?
Cada envío en el formulario siempre contiene una marca de tiempo. Entonces, cuando un usuario deja una pregunta en blanco, el valor de la misma en e.values está vacío. Producirá algo como esto: [3/4/2022 5:50:53, , , , , , , , , , , , ] .
Los valores vacíos funcionan en body.replaceText() y no producen errores. Por lo tanto, no necesita cambiar nada en su código.
En caso de que tenga un valor null en su e.values , lo que se puede hacer editando el contenido de e.values , simplemente agregue un ||'' al lado de la cadena de reemplazo.
Su código debería verse así:
body.replaceText("{{RECIPIENT NAME}}", recipientName||''); body.replaceText("{{FIRST LINE OF ADDRESS}}", firstLineOfAddress||''); body.replaceText("{{SECOND LINE OF ADDRESS}}", secondLineOfAddress||''); body.replaceText("{{THIRD LINE OF ADDRESS}}", thirdLineOfAddress||''); body.replaceText("{{Postcode}}",postcode||''); body.replaceText("{{EMAIL}}",recipientEmail||''); body.replaceText("{{DATE}}",todaysDate||''); body.replaceText("{{REF}}", invoicenNumber||''); body.replaceText("{{DUEDATE}}", dueDate||''); body.replaceText("{{desc1}}", item1Description||''); body.replaceText("{{qty1}}", item1Qty||''); body.replaceText("{{unitprice1}}", item1UnitPrice||''); body.replaceText("{{amount1}}", item1Amount||'')