Delete single row GSheet

Ciao a tutti, non riesco ad eliminare una riga in una tabella in GSheet.
Ad oggi utilizzo questo sistema per leggere gli ID.
Selezionando un ID dalla ListView, come faccio ad eliminare la riga corrispondente?
Ho già provato molte soluzioni in rete ma nessuna funziona.

You need to create a google apps script web app to do this.

function doGet(e) {
    var ss = SpreadsheetApp.openById(e.parameter.ID);
    var sh = ss.getSheetByName(e.parameter.SH);
    var rg = sh.getDataRange().getValues();
    var index = e.parameter.INDEX;  //index in list
    var col1 = e.parameter.COL1;  // current/existing value of Col1
    for (var i = 0; i < rg.length; i++ ) {
      if ( index != undefined && i == index && col1 == rg[i][0] ) {
        sh.deleteRow(parseInt(index)+1);
      } 
    }
    return ContentService.createTextOutput("Record deleted");    
   }

you would send a url like this:

https://script.google.com/macros/s/AKfycby...21BfQ/exec?ID=1GeT45XhCFpBbYkgORpFUc3Z9y9AexPMNtC7d-J3ju4c&SH=Sheet1&INDEX=101&COL1=Jones

This gets the index of the row in your existing list on AppInventor, and the first item in the row, if these two things match then the row is deleted on the google sheet.

https://developers.google.com/apps-script/guides/web

Dallo scrpt mi esce questo errore:
Schermata 2020-11-25 alle 13.47.47

Sorry, I left the "function" off the beginning.

Should be

function doGet(e) {
......


Schermata 2020-11-25 alle 13.53.29

Non riesco a terminare la stringa del link, ti allego gli errori.

Like this:

global index is your Listview1.SelectionIndex

global col1 is the first item of the sublist in your listview selection

Non funziona.
Ti allego i blocchi creati.
Come creo il "global col1?

Schermata 2020-11-25 alle 15.57.32

Let us assume your main list looks like this:

[[a,b,c],[1,2,3],[x,y,z]]

in your listview you would select from:

(a b c)
(1 2 3)
(x y z)

If you wanted to delete (1 2 3) you would select this in your listview.

in the listview.AfterSelecting you would set global index (2) and global col1 (1)

non funziona. Ho sempre lo stesso errore.

You listview is not showing a list of lists.

In this case, set global col1 to Listview.Selection.


Non funziona ancora.

Are you reading a list in somewhere else ?

Questa è la pagina dei blocchi che utilizzo nello screen2.
Il bottone "read" legge il foglio di excel sulla prima colonna e il risultato è in "listview".

I have never used that extension so do not know how it behaves

"Dendritas table" mi restituisce una tabella acquisendo i dati in CSV. Se dovessi usare solo "listview" come imposto "web1.gottext"?

We are close but something is wrong somewhere. Here is an example that works!

SHEET

image

SCRIPT

function doGet(e) {
    var ss = SpreadsheetApp.openById(e.parameter.ID);
    var sh = ss.getSheetByName(e.parameter.SH);
    var rg = sh.getDataRange().getValues();
    var index = e.parameter.INDEX;  //index in list
    var col1 = e.parameter.COL1;  // current/existing value of Col1
    for (var i = 0; i < rg.length; i++ ) {
      if ( index != undefined && i == index && col1 == rg[i][0] ) {
        sh.deleteRow(parseInt(index)+1);
      } 
    }
    return ContentService.createTextOutput("Record deleted");    
   }

BLOCKS

SCREEN

AIA

deleteRow.aia (4.1 KB)

SHEET URL

Sharing set as a minimuim to anyone with the link. Here I have set to allow anyone to edit so you can test and reset the sheet.

Press the Read button to return the list on the sheet, and display this in the listview
Select an item in the listview to delete the item on the sheet, and update the listview

this is what you are returning, which does not make much sense...


Taifun

Ho importato il tuo progetto nelle mie tabelle e funziona tutto.
L'ultimo problema rimasto è se all'interno di una cella ci sono due parole con uno spazio in mezzo il procedimento da errore e non elimina quella determinata riga.
Come possiamo risolvere?


Se invece tra le parole scritte non ci sono spazi il tutto funziona correttamente.

Ho risolto il problema sostituendo lo spazione con l'underscore (_).
Ora funziona tutto a meraviglia.

Grazie infinite per l'aiuto.

Rettifico quello che ho detto prima.
Ora quando inserisco una nuova riga mi esce questo errore:
image