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ètre opt_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 classe goog.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 appelant getDataTable(). 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.
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.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/07/10 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2024/07/10 (UTC)."],[[["\u003cp\u003eThis page explains how to send a SQL query to a Datasource, a web service supporting the Chart Tools Datasource protocol, to receive a DataTable with the requested data.\u003c/p\u003e\n"],["\u003cp\u003eYou can use a Query object to send a request with optional parameters for sending method and a query language string for filtering data, receiving a response handled by a callback function.\u003c/p\u003e\n"],["\u003cp\u003eThe response handler checks for errors and, if successful, retrieves the DataTable from the QueryResponse for use in visualizations like charts.\u003c/p\u003e\n"],["\u003cp\u003eCSV data can be either manually converted to Google Charts datatable format or placed on a web server and queried using the techniques described on the page.\u003c/p\u003e\n"],["\u003cp\u003eMore detailed information on query language syntax, the Query class, and the QueryResponse class can be found via provided links.\u003c/p\u003e\n"]]],[],null,["# Data Queries\n\nThis page describes how to send a query to a data source that supports the Chart Tools Datasource\nprotocol.\n\nContents\n--------\n\n1. [Overview](#overview)\n2. [Sending a request](#Sending_a_Query)\n3. [Processing the response](#Processing_the_Query_Response)\n4. [Reading CSV files](#csv)\n5. [More information](#moreinfo)\n\nOverview\n--------\n\n\nA Datasource is a web service that supports the Chart Tools Datasource protocol. You can send a\nSQL query to a Datasource, and in response you will receive a DataTable populated with the\nappropriate information. Some examples of Datasources include\n[Google Spreadsheets](/chart/interactive/docs/spreadsheets) and SalesForce.\n\nSending a request\n-----------------\n\n**To send a request:**\n\n1. Instantiate a [Query](/chart/interactive/docs/reference#Query) object with the URL of your Datasource. The URL should indicate what data is being requested, in a syntax understood by that data source.\n2. Optionally specify request options such as sending method as an optional second parameter in the `Query` object constructor (see the Query constructor's [`opt_options`](/chart/interactive/docs/reference#Query) parameter for details):\n3. Optionally add a [query language string](/chart/interactive/docs/querylanguage) to sort or filter the results, and then send the request. Datasources are not required to support the Chart Tools Datasource query language. If the Datasource does not support the query language, it will ignore the SQL query string, but still return a `DataTable`. The query language is a SQL language variant; read the full [query language syntax here](/chart/interactive/docs/querylanguage).\n4. Send the query, specifying a callback handler that will be called when the response is received: see next section for details.\n\n\nHere's an example of sending a request for data in a Google Spreadsheet cell range; to learn how\nto get the URL for a Google Spreadsheet, see\n[here](/chart/interactive/docs/spreadsheets#Google_Spreadsheets_as_a_Data_Source): \n\n```gdscript\nfunction initialize() {\n var opts = {sendMethod: 'auto'};\n // Replace the data source URL on next line with your data source URL.\n var query = new google.visualization.Query('http://spreadsheets.google.com?key=123AB&...', opts);\n\n // Optional request to return only column C and the sum of column B, grouped by C members.\n query.setQuery('select C, sum(B) group by C');\n\n // Send the query with a callback function.\n query.send(handleQueryResponse);\n}\n\nfunction handleQueryResponse(response) {\n // Called when the query response is returned.\n ...\n}\n```\n\nIf you are sending your query from within Apps Script, be sure to use [`IFRAME` mode](/apps-script/reference/html/sandbox-mode).\n\nProcessing the response\n-----------------------\n\n\nYour response handler function will be called when the request returns. The parameter passed in\nto your response handler function is of type\n[google.visualization.QueryResponse](/chart/interactive/docs/reference#QueryResponse).\nIf the request was successful, the response contains a data table\n(class `google.visualization.DataTable`). If the request failed, the response contains\ninformation about the error, and no `DataTable`.\n\n**Your response handler should do the following:**\n\n1. Check whether the request succeeded or failed by calling `response.isError()`. You shouldn't need to display any error messages to the user; the Visualization library will display an error message for you in your container `\u003cdiv\u003e`. However, if you do want to handle errors manually, you can use the [`goog.visualization.errors`](/chart/interactive/docs/reference#errordisplay) class to display custom messages (see the [Query Wrapper Example](/chart/interactive/docs/examples#querywrapper) for an example of custom error handling).\n2. If the request succeeded, the response will include a `DataTable` that you can retrieve by calling `getDataTable()`. Pass it to your chart.\n\nThe following code demonstrates handling the previous request to draw a pie chart: \n\n```gdscript\nfunction handleQueryResponse(response) {\n\n if (response.isError()) {\n alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());\n return;\n }\n\n var data = response.getDataTable();\n var chart = new google.visualization.PieChart(document.getElementById('chart_div'));\n chart.draw(data, {width: 400, height: 240, is3D: true});\n}\n```\n\nReading CSV files\n-----------------\n\nIf you want to build a chart out of CSV (comma-separated values)\ndata, you have two choices. Either manually convert the CSV data into\nthe [Google\nCharts datatable format](/chart/interactive/docs/datatables_dataviews#creatingpopulating), or place the CSV file on the web server\nserving the chart, and query it using the technique on this page.\n\nMore information\n----------------\n\n- [Query Language Syntax](/chart/interactive/docs/querylanguage) - Describes the syntax of the language used to make data queries.\n- [Query Class](/chart/interactive/docs/reference#Query) - Reference page for the class that wraps a query.\n- [QueryResponse Class](/chart/interactive/docs/reference#QueryResponse) - Reference page for the class that wraps the response to a query."]]