Ejecute ImportData solo cuando Google Sheet esté abierto
Tengo varias Hojas de cálculo de Google que hacen un uso intensivo de ImportData para llamar a un servicio REST.
Inicialmente tuve la impresión de que ImportData solo llamaría al servicio REST cuando la hoja está abierta y en uso por una persona.
Resulta que este no es el caso, puedo ver muchas llamadas yendo al servicio REST, incluso cuando las hojas no están abiertas.
Lo que podría empeorar las cosas es el hecho de que varias de estas hojas también se pusieron accidentalmente disponibles sin conexión en la aplicación Google Sheets para Android (de forma predeterminada, la aplicación hará que las hojas usadas recientemente estén disponibles sin conexión). Tengo la sensación de que puede haber empeorado las cosas.
Entonces mis preguntas:
- ¿Hay alguna explicación de cómo funcionan las actualizaciones de ImportData?
- ¿Es posible controlar este mecanismo de actualización?
- ¿La funcionalidad "sin conexión" de la aplicación de Android interfiere con este mecanismo?
Idealmente, me gustaría:
- Ponga un botón "actualizar ahora" en la hoja.
- Haga clic en el botón para actualizar todos los campos de datos de importación.
- Mientras no se presione el botón, los campos siguen mostrando los datos antiguos (incluso cuando se vuelve a abrir la hoja).
- Opcionalmente, esto también debería comportarse bien en la aplicación de Android, aunque no es "imprescindible".
Tenga en cuenta que esto está relacionado con esta pregunta , pero al revés. No quiero actualizaciones de ImportData cuando la hoja no está abierta en el navegador de alguien.
Respuestas
Puede utilizar Google Apps Script para
Cree un menú con un elemento que ejecute un script para importar sus datos
El script no se ejecutará en Android
PD: También existe la posibilidad de Triggers, nombrando una función en GAS 'onOpen' que en realidad solo ejecuta la función cuando está abierta.
El código para importar datos debe ser de 2 o 3 líneas, si no está familiarizado con GAS eche un vistazo aquí:
https://developers.google.com/apps-script/reference/spreadsheet/range#getValues() https://developers.google.com/apps-script/reference/spreadsheet/range#setValues()