JavaScript, HTML, CSS e... !
6 commenti

Collegare Google Apps Script ad AppSheet

Rimuovere Righe Vuote dai Google Sheets | AppSheet

Una funzionalità che non è presente in modo nativo in AppSheet è quella di rimuovere le righe vuote da un Foglio Google dopo che un elemento nell'app è stato eliminato.

Le uniche due possibilità sono quelle di effettuare l'eliminazione della riga in modo manuale (ma l'operazione non sarebbe né sostenibile né funzionale) oppure quella di utilizzare uno script con Google Apps Script.

Nel video ti mostro la seconda opzione! Ovvero, come collegare all'azione "Rimuovi" in AppSheet uno script di Google Apps Script che elimina in modo automatico la riga dal Foglio Google. 

Ecco a te il codice della funzione che puoi copiare ed incollare nella tua app! [ISCRIVITI AL CANALE YOUTUBE]:

function deleteBlankRows() {

  var ss = SpreadsheetApp.openById("SPREADSHEET_ID");
  var sh = ss.getSheetByName("SHEET_NAME")

  var searchDataRange = sh.getRange(1, 1, sh.getLastRow(), sh.getLastColumn());
  var searchValues = searchDataRange.getValues();
  var numRows = searchValues.length;
  var numCols = searchDataRange.getNumColumns();
  var rowsToDel = [];
  var delRow = -1;
  var prevDelRow = -2;
  var rowClear = false;

  for (var r = 0; r < numRows; r++) {

    for (var c = 0; c < numCols; c++) {
      if (searchValues[r][c].toString().trim() === "") {
        rowClear = true;
      } else {
        rowClear = false;
        break;
      }
    }

    if (rowClear) {
      if (prevDelRow === r - 1) {
        rowsToDel[delRow][1] = parseInt(rowsToDel[delRow][1]) + 1;
      } else {
        rowsToDel.push([[r + 1], [1]]);
        delRow += 1;
      }
      prevDelRow = r;
    }
  }

  if (rowsToDel.length > 0) {
    if (numRows === rowsToDel[0][1]) {
      if (numRows > 1) {
        sh.deleteRows(2, numRows - 1);
      }
    } else {
      var rowsToDeleteLen = rowsToDel.length;
      for (var rowDel = rowsToDeleteLen - 1; rowDel >= 0; rowDel--) {
        sh.deleteRows(rowsToDel[rowDel][0], rowsToDel[rowDel][1]);
      }
    }
  }
}

ISCRIVITI AL CANALE YOUTUBE! E attiva la campanella in modo da essere aggiornato sui prossimi video pubblicati e codici pronti all'uso! :)

Tags

Michele Pisani

Michele Pisani

Sviluppatore Javascript ed esperto in Digital Analytics

L'esperienza nel settore Digital Analytics unita ad anni di sviluppo in Javascript ha trovato la massima espressione in Google Apps Script che mi ha permesso, con estrema facilità e poche righe di codice, di realizzare potenti applicazioni interattive e processi automatizzati integrati con i prodotti della G Suite.

Come contattarmi
scrivi un commento

6 Commenti

  1. Friday, August 25, 2023 alle ore 14:37 Michele PisaniAutore

    Quello nell'articolo è un interessante esempio di come si possono unire i 2 mondi Apps Script e AppSheet! :)

    Rispondi a questo commento
  2. Friday, August 25, 2023 alle ore 14:44 Michele PisaniAutore

    Questo è un valido esempio di come si possono unire i 2 mondi Apps Script e AppSheet! :)

    Rispondi a questo commento
  3. Saturday, September 2, 2023 alle ore 22:28 Michele PisaniAutore

    Questo è un valido esempio di come si possono unire i 2 mondi Apps Script e AppSheet! :)

    Rispondi a questo commento
  4. Monday, September 4, 2023 alle ore 09:26 Michele PisaniAutore

    Questo è un valido esempio di come si possono unire i 2 mondi Apps Script e AppSheet! :)

    Rispondi a questo commento
  5. Monday, February 12, 2024 alle ore 13:41 Carlo

    Ciao, esiste la possibilità di eliminare righe nelle quali ci sono solo alcune celle vuote?
    Avrei bisogno di eliminare per intero queste righe seppur le colonne A e B siano occupate da dati (inutili). Grazie

    Rispondi a questo commento
    • Monday, February 12, 2024 alle ore 13:51 Michele PisaniAutore

      Ciao Carlo, certo che è passibile. Il codice deve essere ovviamente modificato, un approccio può essere quello di prendere tutte le righe e gestire quali eliminare in base a una condizione all'interno del ciclo.

      Rispondi a questo commento

Scrivi un commento

Il tuo indirizzo email non sarà pubblicato.I campi contrassegnati da un * sono obbligatori
Puoi utilizzare i seguenti tag nei commenti:
[bold]testo[/bold] se vuoi evidenziare un testo con il grassetto[code]function helloworld() { }[/code] se vuoi pubblicare una porzione di codice[url]https://www.appsscript.it[/url] se devi riferirti ad un indirizzo web