Retour aux fonctions

IMPORTHTML

Importe des données à partir d'un tableau ou d'une liste au sein d'une page HTML.

WebIMPORTHTML(url, query, index)

IMPORTHTML récupère un tableau ou une liste d'une page web dans votre feuille et le rafraîchit automatiquement. C'est le moyen le plus simple d'amener des données publiques, comme des classements, des tableaux de prix, des résultats sportifs ou des tableaux Wikipédia, dans un tableur sans écrire de code.

Syntaxe

=IMPORTHTML(url, query, index)
  • url : L'adresse de la page web, entre guillemets (ou dans une cellule), avec https://.
  • query : Soit "table", soit "list" : le type d'élément à importer.
  • index : Quel tableau ou quelle liste de la page, à partir de 1, dans l'ordre d'apparition dans le HTML de la page.

Exemples de base

=IMPORTHTML("https://example.com/classement", "table", 1)

Importe le premier tableau de la page. Remplacez 1 par 2 pour le deuxième tableau, et ainsi de suite.

=IMPORTHTML("https://example.com/page", "list", 1)

Importe la première liste à puces ou numérotée.

Trouver le bon index

L'index compte chaque <table> (ou liste) de la page, y compris ceux qui sont masqués ou servent à la mise en page. Il n'existe pas de moyen visuel de voir le numéro : l'approche pratique consiste donc à essayer des valeurs jusqu'à ce que le bon tableau apparaisse :

  1. Commencez par 1.
  2. Augmentez le nombre jusqu'à trouver le tableau voulu.
  3. Si vous obtenez une erreur pour un nombre élevé, c'est que la page a moins de tableaux que cela.

À quoi ressemble le résultat

Le tableau se déverse dans les cellules en dessous et à droite, ligne d'en-tête comprise. Les nombres sont convertis en nombres quand c'est possible, mais les valeurs accompagnées de symboles monétaires, de notes de bas de page ou d'unités restent du texte. Le résultat a besoin d'espace libre ; si quelque chose bloque la zone de déversement, vous obtenez #REF!.

Formules pratiques

Choisir quelques colonnes

Utilisez QUERY sur le tableau importé, en désignant les colonnes par Col1, Col2, etc. :

=QUERY(IMPORTHTML("https://example.com/stats", "table", 1), "select Col1, Col3 where Col3 > 100", 1)

Nettoyer les nombres

Les nombres importés contiennent souvent des symboles, des marques de notes ou des séparateurs de milliers. Nettoyez-les avec REGEXREPLACE et VALUE :

=ARRAYFORMULA(IFERROR(VALUE(REGEXREPLACE(B2:B, "[^0-9.]", ""))))

Obtenir une seule cellule d'un tableau

=INDEX(IMPORTHTML("https://example.com/stats", "table", 1), 3, 2)

Renvoie la cellule de la 3e ligne et de la 2e colonne, pratique pour intégrer un seul nombre, comme un taux actuel, dans un modèle.

Construire l'URL à partir d'une cellule

=IMPORTHTML("https://example.com/equipe/" & A2, "table", 1)

Modifiez A2 et le tableau se met à jour.

Inverser l'orientation

=TRANSPOSE(IMPORTHTML("https://example.com/stats", "table", 1))

Conserver un instantané

Les données importées se rafraîchissent et la page peut changer ou disparaître. Pour conserver une copie figée, copiez les cellules et collez-les en valeurs uniquement.

Limites et rafraîchissement

  • Pages publiques uniquement. La page doit être accessible sans connexion. Les pages protégées par une connexion ou un accès payant ne renvoient rien.
  • HTML statique uniquement. IMPORTHTML lit le HTML envoyé par le serveur. Les tableaux construits ensuite par JavaScript (de nombreux tableaux de bord modernes) ne lui sont pas visibles. Si vous voyez le tableau dans votre navigateur mais que IMPORTHTML ne le trouve pas, c'est la raison probable. Cherchez une page qui sert le tableau en HTML simple, ou un lien d'API ou de CSV, et utilisez IMPORTDATA ou IMPORTXML.
  • Fréquence de rafraîchissement. Les données importées se rafraîchissent périodiquement (environ toutes les heures), pas instantanément. Modifier la formule force une nouvelle récupération.
  • Limites de requêtes. De nombreux appels à IMPORTHTML dans un même classeur peuvent provoquer des « Chargement... » ou des erreurs. Importez une fois dans une feuille de données et faites-y référence.
  • Blocage. Certains sites bloquent les requêtes automatisées, et IMPORTHTML renvoie alors une erreur.
  • Conditions d'utilisation. Vérifiez que le site autorise cet usage de ses données.

Erreurs courantes

  • #N/A : « Le contenu importé est vide ». L'index du tableau n'existe pas, la page est construite avec JavaScript, ou le site a bloqué la requête.
  • #N/A ou erreur : « Impossible de récupérer l'URL ». L'URL est erronée, le site est en panne ou bloque, ou la page demande une connexion.
  • #VALUE! : « Le contenu de la ressource dépasse la taille maximale ». La page est trop volumineuse. Essayez une page plus légère, ou une autre source.
  • Une erreur sur l'argument de requête. query doit être exactement "table" ou "list", entre guillemets.
  • #REF! : « Le résultat de la matrice n'a pas été développé ». Des cellules de la zone de déversement ne sont pas vides.
  • Mauvais tableau. L'index pointe vers un autre tableau que prévu. Essayez les numéros voisins.
  • La mise en page a changé. Le site a modifié sa page, ce qui décale l'index du tableau. Revérifiez l'index quand les résultats deviennent faux.

IMPORTHTML, IMPORTXML, IMPORTDATA ou IMPORTRANGE ?

  • IMPORTHTML : tableaux et listes d'une page web.
  • IMPORTXML : n'importe quel élément d'une page web ou d'un fichier XML, sélectionné avec XPath. Plus flexible, et plus technique.
  • IMPORTDATA : un fichier CSV ou TSV depuis une URL.
  • IMPORTRANGE : une plage d'une autre feuille Google Sheets.
  • IMPORTFEED : flux RSS et Atom.

Questions fréquentes

Comment savoir quel numéro de tableau utiliser ? Essayez 1, 2, 3 jusqu'à ce que le bon apparaisse.

Peut-on importer plusieurs tableaux à la fois ? Un appel importe un tableau. Utilisez plusieurs formules.

Peut-on importer des pages qui demandent une connexion ? Non.

Pourquoi le tableau est-il absent alors que je le vois dans mon navigateur ? Il est probablement généré par JavaScript.

Fonctions associées

  • IMPORTXML : Importe des données de pages web avec XPath.
  • IMPORTDATA : Importe un fichier CSV depuis une URL.
  • IMPORTRANGE : Importe une plage d'un autre classeur.
  • QUERY : Filtre et agrège les données importées.
  • INDEX : Choisit une valeur dans le tableau importé.

Articles associés

Newsletter

Plus d'exemples sur IMPORTHTML arrivent bientôt.

Nous préparons des mises à jour courtes et pratiques pour les utilisateurs avancés de Sheets.