2022/06/01

Como manter a formatação das respostas no Google Forms

As respostas e resultados dos formulários da Google não mantêm a formatação na folha de cálculo, mas é algo que se pode resolver.

Os Google Forms são uma forma rápida e eficiente de criar formulários na web, para coisas tão variadas como formas de contacto, testes online, inquéritos, passatempos, e muito mais, com os resultados a poderem ser inseridos automaticamente numa folha de cálculo Google Sheets. Infelizmente, esses resultados são metidos numa nova linha sem qualquer consideração pela formatação que se tiver aplicado antes.

Embora seja algo que a Google poderia / deveria fazer de origem, é algo que se pode resolver recorrendo às potencialidades ilimitadas do Google Apps Script.

O script que se segue cria uma função que é executada de cada vez que a folha de cálculo receber uma nova linha de resultados vinda de um formulário, e aplica-lhe a mesma formatação e estilos da linha anterior.

/**
* @OnlyCurrentDoc
*/

const createTrigger = () => {
ScriptApp.getProjectTriggers().forEach((trigger) => {
ScriptApp.deleteTrigger(trigger);
});

ScriptApp.newTrigger('formRowOnFormSubmit').forSpreadsheet(SpreadsheetApp.getActive()).onFormSubmit().create();
};

const formRowOnFormSubmit = (e) => {
if (!e) {
throw new Error('Please do not run this function manually!');
}

const { range } = e;
const row = range.getRowIndex();
if (row > 2) {
const sheet = range.getSheet();

// Select the previous row range
const sourceRange = sheet.getRange(`${row - 1}:${row - 1}`);

// Get the recently added row
const targetRange = sheet.getRange(`${row}:${row}`);

// Copy the format only from the previous row to the current row
sourceRange.copyTo(targetRange, SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);

}
};

Sem comentários:

Enviar um comentário (problemas a comentar?)