Esegui ImportData solo quando il foglio Google è aperto

Aug 23 2020

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:

  1. Metti un pulsante "Aggiorna ora" sul foglio.
  2. Fare clic sul pulsante per aggiornare tutti i campi dei dati di importazione.
  3. Finché il pulsante non viene premuto, i campi continuano a visualizzare i vecchi dati (anche quando il foglio viene riaperto).
  4. 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

2 Riël Aug 24 2020 at 13:49

Puoi utilizzare Google Apps Script per

  1. Crea un menu con un elemento che esegue uno script per importare i tuoi dati

  2. 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()