web-dev-qa-db-fra.com

Quelles sont les caractéristiques d'actualisation des fonctions d'importation de Google Spreadsheet?

Les données importées ne sont pas toujours à jour avec les pages source lorsque je charge la feuille de calcul. Lorsque cela se produit, l'actualisation F5 n'aide pas. Ctl-F5 non plus. Apparemment, une sorte de cache est en cours.

Je pense qu'ils peuvent limiter les extractions d'URL lorsque j'essaie d'actualiser trop souvent, comme lorsque je modifie activement ma feuille de calcul.

Référence du document: http://docs.google.com/support/bin/answer.py?answer=75507

8
Chris Noe

Selon ce fil de discussion de Google Documents , , les données doivent être actualisées toutes les heures environ

Dans ce fil, une affiche suggère d’ajouter une chaîne de requête aléatoire à l’URL que vous souhaitez extraire -

J'ai utilisé une solution de contournement simple consistant à ajouter un paramètre qui se met à jour toutes les minutes.

L'appel de la fonction est: = ImportHtml ("http://www.fifa.com/worldcup/standings/index.html?" & H81; "table"; 4)

La formule dans H81 est: = minute (maintenant ())

Cela fait l'affaire pour moi.

5
mvark

Réponse courte

Vous avez raison, les fonctions d'importation mettent à jour leurs résultats à certains intervalles.

Explication

De modifie les paramètres régionaux, le fuseau horaire, le recalcul et la langue d'une feuille de calcul , un article d'aide de la documentation officielle,

Remarque: Les fonctions de données externes sont recalculées aux intervalles suivants:

  • ImportRange: 30 minutes
  • ImportHtml, ImportFeed, ImportData, ImportXml: 1 heure
  • GoogleFinance: 2 minutes

Cela vaut la peine de dire que les formules sont recalculées lorsque leurs arguments changent. Nous pourrions donc l'utiliser pour forcer l'actualisation des données importées.

Workaround

Une façon de forcer le recalcul des formules avec les fonctions d'importation consiste à concaténer à l'URL un paramètre déterministe mais inoffensif.

Exemple

Dans l'exemple suivant, "#rev =" & A2 est ajouté à l'URL d'origine.

A1: https://en.wikipedia.org/wiki/List_of_gravitationally_rounded_objects_of_the_Solar_System
A2: 1
A3: 4
A4: =IMPORTHTML(A1&"#rev="&A2,"table",A3)

Chaque fois que l'une des valeurs ou A1, A2 ou A3 change, la formule est recalculée. Nous pourrions changer la valeur de A2 pour "forcer" un rafraîchissement de la table 4 à partir de l'URL dans A1.

Intervalle d'actualisation personnalisé pour les fonctions d'importation

Pour définir un intervalle d'actualisation personnalisé pour les fonctions d'importation, utilisez un script de déclencheur temporel pour mettre à jour le paramètre d'URL déterministe mais inoffensif.

/**
 *
 * Updates at the interval set in the time driven trigger configuration
 * a cell value to be used as a deterministic bu unnicouus URL parameter 
 *
 */
function forceRefresh() {
  //Cell addrees of the deterministic but unnicouos URL parameter
  var reference = 'Sheet1!A2';   
  var rng = SpreadsheetApp.getActiveSpreadsheet().getRange(reference);
  rng.setValue(rng.getValue()+1);
}

Références

2
Rubén

Une autre alternative qui ne repose pas sur la modification de lien:

= if (Minute (Now ()) = Minute (Now ()), ImportHtml (" http://www.fifa.com/worldcup/standings/index.html ?"; "table" ; 4), "")

Puisque Minute(Now())=Minute(Now()) est toujours vrai, le if retournera toujours le ImportHtml

0
VDizzle