Esegui ImportData solo quando il foglio Google è aperto
Ho un certo numero di fogli Google che fanno un uso massiccio di ImportData per chiamare un servizio REST.
Inizialmente avevo l'impressione che ImportData chiamasse il servizio REST solo quando il foglio è aperto e utilizzato da una persona.
Si scopre che non è questo il caso, posso vedere molte chiamate che vanno al servizio REST, anche quando i fogli non sono aperti.
Ciò che potrebbe peggiorare le cose, è il fatto che alcuni di questi fogli sono stati resi accidentalmente disponibili offline anche nell'app Google Fogli per Android (per impostazione predefinita, l'app renderà disponibili offline i fogli utilizzati di recente). Ho la sensazione che possa aver peggiorato le cose.
Quindi le mie domande:
- C'è da qualche parte una spiegazione su come funzionano gli aggiornamenti ImportData?
- È possibile controllare questo meccanismo di aggiornamento?
- La funzionalità "offline" dell'app Android interferisce con questo meccanismo?
Idealmente, vorrei:
- Metti un pulsante "Aggiorna ora" sul foglio.
- Fare clic sul pulsante per aggiornare tutti i campi dei dati di importazione.
- Finché il pulsante non viene premuto, i campi continuano a visualizzare i vecchi dati (anche quando il foglio viene riaperto).
- Facoltativamente, questo dovrebbe comportarsi bene anche nell'app Android, sebbene non sia un "must have".
Nota che questo è correlato a questa domanda , ma il contrario. Non voglio aggiornamenti ImportData quando il foglio non è aperto nel browser di qualcuno.
Risposte
Puoi utilizzare Google Apps Script per
Crea un menu con un elemento che esegue uno script per importare i tuoi dati
Lo script non verrà eseguito su Android
PS C'è anche la possibilità per i Trigger, di nominare una funzione in GAS "onOpen" che in realtà esegue la funzione solo quando è aperta.
Il codice per importare i dati dovrebbe essere di 2 o 3 righe, se non hai familiarità con GAS dai un'occhiata qui:
https://developers.google.com/apps-script/reference/spreadsheet/range#getValues() https://developers.google.com/apps-script/reference/spreadsheet/range#setValues()