bonjour, peut-on envoyer et lire les données dans google sheets avec le même bouton ?
Yes, if you add a separate Spreadsheet component for the update, and have its completion event initiate the read.
est ce qu'il y a un exemple ou un tuto ?
les informations que vous m'avez envoyer sont pour uniquement lire , mais je compte lire, écrire et modifier la google sheet. Donc ça ne m'aide pas beaucoup !
That is not the case, there are example for read and write.
Given you are already using google apps script, you can write a script function in which you can write data, then return a read of the sheet in one go.
oui c'est un exemple que j'aimerais avoir, et oui j'ai déjà un script
For example:
var ss = SpreadsheetApp.openById('SPREADSHEET ID HERE');
var sh = ss.getSheetByName('SHEETNAME HERE');
doPost(e) {
if (func = "writeRead" ) {
sh.AppendRow([e.parameter.data]);
SpreadsheetApp.flush(); //ensures data is written to sheet before next action
rng = sh.getDataRange().getValues();
return ContentService.createTextOutput(JSON.stringify(rng));
}
}
ok j'avais fais ça , c'est pas correct ? :
else if (e.parameter.func == "report") {
var date = e.parameter.date ;
var repas = e.parameter.repas ;
var change = e.parameter.change ;
var sieste = e.parameter.sieste ;
var soins = e.parameter.soins ;
var transmission = e.parameter.transmission ;
sh.appendRow([nom,date,repas,change,sieste,soins,transmission]);
return ContentService.createTextOutput("validé");
}
else if (e.parameter.func == "readreport") {
var date = e.parameter.date ;
var repas = e.parameter.repas ;
var change = e.parameter.change ;
var sieste = e.parameter.sieste ;
var soins = e.parameter.soins ;
var transmission = e.parameter.transmission ;
var ref = sh.getRange(parseInt(e.parameter.nom)+1,1,1,rg[0].length). getValues();
return ContentService.createTextOutput(JSON.stringify(ref)).setMimeType(ContentService.MimeType.JSON);
}
That would require two separate calls to the script. As with my example, combine both of those functions to return the data after you have written it.
oui effectivement votre exemple simplifie le script, pais par contre comment placez vous les blocs alors ? mon but c'est de lire et ècrire en cliquant sur le même bouton.
This ?
if (e.parameter.func == "writeReadReport") {
var nom = e.parameter.nom;
var date = e.parameter.date ;
var repas = e.parameter.repas ;
var change = e.parameter.change ;
var sieste = e.parameter.sieste ;
var soins = e.parameter.soins ;
var transmission = e.parameter.transmission ;
sh.appendRow([nom,date,repas,change,sieste,soins,transmission]);
SpreadsheetApp.flush();
var ref = sh.getRange(parseInt(nom)+1,1,1,rg[0].length). getValues();
return ContentService.createTextOutput(JSON.stringify(ref)).setMimeType(ContentService.MimeType.JSON);
}
merci de m'avoir corrigé le script
j'avais fais ça avec les blocs, je pense que ce n'est pas correct maintenant
pouvez vous m'aidez pour les blocs par rapport au script ci dessus ? merci,
est ce que je dois juste changer la func = writeReadReport à la place de la func=report au niveau du bouton22
This
should do it, but you need to change:
func=report
to
func=writeReadReport
and probably your reponse
value for when the data is returned
if using this in your script:
if (e.parameter.func == "writeReadReport") {
var nom = e.parameter.nom;
var date = e.parameter.date ;
var repas = e.parameter.repas ;
var change = e.parameter.change ;
var sieste = e.parameter.sieste ;
var soins = e.parameter.soins ;
var transmission = e.parameter.transmission ;
sh.appendRow([nom,date,repas,change,sieste,soins,transmission]);
SpreadsheetApp.flush();
var ref = sh.getRange(parseInt(nom)+1,1,1,rg[0].length). getValues();
return ContentService.createTextOutput(JSON.stringify(ref)).setMimeType(ContentService.MimeType.JSON);
}
j'ai essayé mais je n'arrive pas , quand je clik sur le bouton22 j'ai mes données dans la sheet mais je n'arrive pas à lire les données, pouvez vous m'aider ?
voilà mes blocs
voilà mon script complet
function doGet(e) {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName("Sheet1");
var sh = ss.getSheetByName("Sheet2");
var nom = e.parameter.nom ;
var motdepasse = e.parameter.motdepasse ;
var msg;
if ( e.parameter.func == "register" ) {
sheet.appendRow([nom,motdepasse]);
return ContentService.createTextOutput("Nouveau compte");
}
else if ( e.parameter.func == "testLogin" ) {
var msg = "Information incorrecte";
var loginData = sheet.getDataRange().getValues();
for ( var i = 0; i < loginData.length; i++ ) {
if ( nom == loginData[i][0] && motdepasse == loginData[i][1] ) {
msg = "connecté";
}
}
return ContentService.createTextOutput(msg);
}
else if ( e.parameter.func == "supprimer" ) {
var loginData = sheet.getDataRange().getValues();
for (var i = 0; i < loginData.length; i++ ) {
if ( nom == loginData[i][0] && motdepasse == loginData[i][1] ) {
msg = "compte supprimé";
sheet.deleteRow(i+1);
}
}
var reportData = sh.getDataRange().getValues();
for (var i = 0; i < reportData.length; i++ ) {
if ( nom == reportData[i][0] ) {
msg = " compte supprimé";
sh.deleteRow(i+1);
}
}
return ContentService.createTextOutput(msg);
}
else if (e.parameter.func == "WriteReadReport") {
var nom = e.parameter.nom ;
var date = e.parameter.date ;
var repas = e.parameter.repas ;
var change = e.parameter.change ;
var sieste = e.parameter.sieste ;
var soins = e.parameter.soins ;
var transmission = e.parameter.transmission ;
sh.appendRow([nom,date,repas,change,sieste,soins,transmission]);
SpreadsheetApp.flush();
var ref = sh.getRange(parseInt(nom)+1,1,1,rg[0].length). getValues();
return ContentService.createTextOutput(JSON.stringify(ref)).setMimeType(ContentService.MimeType.JSON);
}
}
je l'ai supprimé et j'ai un message d'erreur =
The operation select list item cannot accept the arguments: , ["WriteReadReport"], [1]
Note: Vous n'allez pas voir une autre erreur rapportée pour 5 secondes.
voilà mes blocs
Please explain how it is possible for variable response to equal the text 'WriteReadReport' and also be a list with items 1,2,3,4,... ?
Maybe you were thinking of some other variable?
il faut que je créé une variable pour chaque label (nom, date, repas,......) ?
je suis débutante