Estoy usando un script que genera programáticamente algunos formularios. Estoy registrando las respuestas en una hoja de cálculo de Google separada. El problema es que cada vez que se crea un nuevo formulario, también se crea una nueva hoja de cálculo en mi hoja de cálculo. Entonces, una hoja de cálculo para cada formulario creado. ¿Hay alguna forma de cambiar el nombre de las nuevas hojas creadas para poder saber qué hoja corresponde al formulario creado?
O mejor aún, registre todas las respuestas en una sola hoja maestra.
Mi archivo appscript es un archivo independiente:
Registro las respuestas enviadas con:
destination=SpreadsheetApp.openById('id'); form.setDestination(FormApp.DestinationType.SPREADSHEET, destination.getId())El problema es que cada vez que se crea un nuevo formulario, también se crea una nueva hoja de cálculo en mi hoja de cálculo. Entonces, una hoja de cálculo para cada formulario creado.
No veo que eso suceda en el código proporcionado. Solo puedo ver hojas de respuesta adicionales debido a que los formularios están vinculados en la misma hoja de cálculo.
Si lo que quiere decir es cambiar el nombre de la hoja creada en la misma hoja de cálculo donde el formulario está vinculado en su código, vea el enfoque a continuación.
function myFunction() { revisedSheetName = 'revised name'; id = 'id' form = FormApp.create('test form'); destination = SpreadsheetApp.openById(id); // get old set of sheets before form linking oldSheets = destination.getSheets().map(sheet => sheet.getSheetName()); form.setDestination(FormApp.DestinationType.SPREADSHEET, id) // apply pending sheet creation SpreadsheetApp.flush() // get new set of new sheets (including new creation) newSheets = destination.getSheets().map(sheet => sheet.getSheetName()); // get name of new sheet by getting the difference of new and old sets of sheets newSheetName = newSheets.filter(sheet => !oldSheets.includes(sheet)); // access new sheet, then rename destination.getSheetByName(newSheetName).setName(revisedSheetName); }