Para que o dashboard possa editar a planilha, crie um Apps Script:
1. Na planilha, vá em Extensões → Apps Script
2. Apague tudo e cole o código abaixo, depois clique em Implantar → Implantação da web
3. Defina "Quem pode acessar" como "Qualquer pessoa" e copie o URL da implantação
function doPost(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Clientes");
var data = JSON.parse(e.postData.contents);
var action = data.action;
if (action === "update") {
var row = parseInt(data.row) + 2; // +2 porque linha 1 é cabeçalho
var col = parseInt(data.col) + 1;
sheet.getRange(row, col).setValue(data.value);
return ContentService.createTextOutput(JSON.stringify({ok:true}))
.setMimeType(ContentService.MimeType.JSON);
}
if (action === "addRow") {
var lastRow = sheet.getLastRow() + 1;
var values = data.values; // array de valores
for (var i = 0; i < values.length; i++) {
sheet.getRange(lastRow, i + 1).setValue(values[i]);
}
return ContentService.createTextOutput(JSON.stringify({ok:true, row:lastRow}))
.setMimeType(ContentService.MimeType.JSON);
}
if (action === "deleteRow") {
var row = parseInt(data.row) + 2;
sheet.deleteRow(row);
return ContentService.createTextOutput(JSON.stringify({ok:true}))
.setMimeType(ContentService.MimeType.JSON);
}
return ContentService.createTextOutput(JSON.stringify({ok:false}))
.setMimeType(ContentService.MimeType.JSON);
}
function doGet(e) {
return ContentService.createTextOutput("API OK")
.setMimeType(ContentService.MimeType.TEXT);
}