Cette page explique comment envoyer une requête à une source de données compatible avec le protocole de source de données des outils de graphique.
Sommaire
Présentation
Une source de données est un service Web qui prend en charge le protocole de source de données Chart Tools. Lorsque vous envoyez une requête SQL à une source de données, vous recevez un tableau de données contenant les informations appropriées. Google Sheets et SalesForce sont des exemples de sources de données.
Envoyer une requête
Pour envoyer une demande:
- Instanciez un objet Query avec l'URL de votre source de données. L'URL doit indiquer les données demandées, en utilisant une syntaxe comprise par cette source de données.
-
Vous pouvez également spécifier des options de requête telles que la méthode d'envoi en tant que deuxième paramètre facultatif dans le constructeur d'objet
Query
(consultez le paramètreopt_options
du constructeur de requête pour en savoir plus): -
Vous pouvez éventuellement ajouter une chaîne dans un langage de requête pour trier ou filtrer les résultats, puis envoyer la requête. Les sources de données ne sont pas obligatoires pour prendre en charge le langage de requête de source de données des outils de graphique. Si la source de données n'est pas compatible avec le langage de requête, elle ignorera la chaîne de requête SQL, mais renverra tout de même une erreur
DataTable
. Le langage de requête est une variante du langage SQL. Pour en savoir plus sur la syntaxe complète du langage de requête, consultez cette page. - Envoyez la requête en spécifiant un gestionnaire de rappel qui sera appelé à la réception de la réponse. Pour en savoir plus, consultez la section suivante.
Voici un exemple d'envoi d'une demande de données figurant dans une plage de cellules d'une feuille de calcul Google Sheets. Pour savoir comment obtenir l'URL d'une feuille de calcul Google, cliquez ici:
function initialize() { var opts = {sendMethod: 'auto'}; // Replace the data source URL on next line with your data source URL. var query = new google.visualization.Query('http://spreadsheets.google.com?key=123AB&...', opts); // Optional request to return only column C and the sum of column B, grouped by C members. query.setQuery('select C, sum(B) group by C'); // Send the query with a callback function. query.send(handleQueryResponse); } function handleQueryResponse(response) { // Called when the query response is returned. ... }
Si vous envoyez votre requête à partir d'Apps Script, veillez à utiliser le mode IFRAME
.
Traiter la réponse
Votre fonction de gestionnaire de réponses sera appelée lorsque la requête sera renvoyée. Le paramètre transmis à votre fonction de gestionnaire de réponses est du type google.visualization.QueryResponse.
Si la requête aboutit, la réponse contient une table de données (classe google.visualization.DataTable
). Si la requête échoue, la réponse contient des informations sur l'erreur, mais pas de DataTable
.
Votre gestionnaire de réponses doit procéder comme suit:
-
Vérifiez si la requête a réussi ou échoué en appelant
response.isError()
. Vous ne devriez pas avoir besoin d'afficher de messages d'erreur à l'utilisateur. La bibliothèque Visualization affichera un message d'erreur dans votre conteneur<div>
. Toutefois, si vous souhaitez gérer les erreurs manuellement, vous pouvez utiliser la classegoog.visualization.errors
pour afficher des messages personnalisés (consultez l'exemple de wrapper de requête pour obtenir un exemple de gestion personnalisée des erreurs). -
Si la requête aboutit, la réponse inclura un
DataTable
que vous pouvez récupérer en appelantgetDataTable()
. Transmettez-la à votre graphique.
Le code suivant illustre le traitement de la requête précédente pour dessiner un graphique à secteurs:
function handleQueryResponse(response) { if (response.isError()) { alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage()); return; } var data = response.getDataTable(); var chart = new google.visualization.PieChart(document.getElementById('chart_div')); chart.draw(data, {width: 400, height: 240, is3D: true}); }
Lire des fichiers CSV
Si vous souhaitez créer un graphique à partir de données CSV (valeurs séparées par des virgules), deux possibilités s'offrent à vous. Convertissez manuellement les données CSV au format de table de données Google Charts ou placez le fichier CSV sur le serveur Web diffusant le graphique, puis interrogez-le à l'aide de la technique décrite sur cette page.
En savoir plus
- Syntaxe du langage de requête : décrit la syntaxe du langage utilisé pour effectuer des requêtes de données.
- Classe de requête : Page de référence de la classe qui encapsule une requête.
- Classe QueryResponse : page de référence de la classe qui encapsule la réponse à une requête.