Fonction HTML_BODY pour Google Sheets

La fonction personnalisée HTML_BODY pour Google Sheets retourne la balise body d'une page Web ainsi que son contenu (ou le code de réponse de la page en cas d'erreur).

Copiez et collez simplement le code de la fonction HTML_BODY dans l'éditeur de scripts pour pouvoir ensuite l'utiliser (pour plus de détails, consultez la page Ajouter une fonction personnalisée à Google Sheets).


Exemple d'utilisation

La fonction HTML_BODY récupère ici le contenu de l'index du forum :

=HTML_BODY("https://forum.excel-pratique.com")

Aperçu :

google sheets fonction body html site internet

Activez si nécessaire le retour à la ligne automatique pour avoir un meilleur aperçu du code HTML importé.

Code Google Apps Script de la fonction

Le code de la fonction à copier-coller dans l'éditeur de scripts :

function HTML_BODY(url) {
  
  // Source : https://www.sheets-pratique.com/fr/codes/fonction-html-body
  
  // Requête
  const requete = UrlFetchApp.fetch(url, {'muteHttpExceptions': true});
  
  // Code de réponse
  const code = requete.getResponseCode().toString();

  // Renvoie le contenu de la page (ou un message d'erreur)
  return code[0] == 2 ? requete.getContentText().match(/<body.*<\/body>/si) || 'Erreur : pas de balise body' : 'Erreur ' + code;
}

Version limitée à 50'000 caractères

Pour éviter d'obtenir une erreur en cas de dépassement de la limite des 50'000 caractères d'une cellule, vous pouvez utiliser cette seconde version de la fonction HTML_BODY :

function HTML_BODY(url) {
  
  // Source : https://www.sheets-pratique.com/fr/codes/fonction-html-body
  
  // Requête
  const requete = UrlFetchApp.fetch(url, {'muteHttpExceptions': true});
  
  // Code de réponse
  const code = requete.getResponseCode().toString();

  // Renvoie le contenu de la page (ou un message d'erreur)
  return code[0] == 2 ? (requete.getContentText().match(/<body.*<\/body>/si) || ['Erreur : pas de balise body'])[0].slice(0, 50000) : 'Erreur ' + code;
}