0

J'écris mon premier script d'applications Google sur des feuilles de Google et je suis très excité par les possibilités qu'il ouvre. Cependant, j'essaie toujours de comprendre quelques choses: comme le déplacement de données entre différents onglets d'une feuille de calcul et à travers des feuilles de calcul indépendantes (avec différents identifiants de feuilles de calcul): Quelqu'un peut-il suggérer comment cela peut être fait? Mais ce qui me préoccupe le plus, c'est que mon script capture les horodatages, mais je veux aussi qu'il enregistre les emails des utilisateurs. J'ai lu dans les documents qu'il existe un critère complexe qui détermine la raison pour laquelle un courriel peut être saisi ou non - quels sont ces critères? Parce qu'étrangement, tout en testant le code initialement, mon propre email était capturé mais seulement dans environ 50% des cas. Je ne suis pas sûr de comprendre complètement ce qui se passe ici?Pourquoi mon script de feuille de calcul Google ne capture-t-il pas les e-mails sur getUser()?

Mon code:

function onEdit(e){ 
    // Set a comment on the edited cell to indicate when it was changed. 
    var range = e.range; 
    var activeSheet = e.source.getActiveSheet(); 
    range.setNote('Last modified: ' + new Date() + new Date().toLocaleTimeString() + ' sheet: ' + activeSheet.getName()); 
    if (activeSheet.getName() == "KYCEntrySheet"){ 
    var r = e.source.getActiveCell(); 
    if(r.getColumn() == 10) { //Any changes within this column set the date below and the email on the 2nd call 
     //if(r.offset(0, 1).getValue() === '') //is empty? 
     r.offset(0, 5).setValue(new Date().toLocaleTimeString());//will only put date, format "123/Date and time" if time needed 
     //if(r.offset(0, 2).getValue() === '') //is empty? 
     r.offset(0, 9).setValue(Session.getUser());//inserts current users email 
    }}} 

Merci!

Répondre

1

Vous ne pouvez pas recevoir des courriels d'utilisateurs qui ne vous autorisaient pas explicitement à connaître leurs courriels. Par exemple, imaginez quelqu'un qui partage une feuille de calcul pour que tout le monde puisse la modifier et qui collecte de manière invisible ses e-mails à l'aide d'un déclencheur onEdit. Google ne permet pas qu'une telle chose se produise.

Google ne voulait pas nous dire ce que sont les «critères complexes», donc nous ne savons pas. À ma connaissance, un simple déclencheur onEdit ne devrait pas avoir accès aux renseignements personnels de quiconque, même le vôtre. Un déclencheur installable (que vous créez dans le menu Ressources) a accès à vos informations personnelles, mais pas à d'autres. Il est possible que vous ayez mélangé les deux.

données entre différents onglets d'une feuille de calcul

Utilisez getSheetByName() pour obtenir une poignée sur la feuille que vous voulez, sélectionnez une plage là-bas, et utiliser source.copyTo(target) pour copier les données.

à travers des feuilles de calcul indépendants (avec différents tableur Ids)

Utilisation range.getValues() dans la feuille de calcul source et target.setValues() dans la feuille de calcul cible. Vous aurez besoin de SpreadsheetApp.openById pour obtenir une poignée sur ce dernier.