简体   繁体   English

在Google Chart API(JavaScript)中使用多个工作表

[英]Using multiple sheets within a google Chart API (Javascript)

Within my code for a Google Chart, I use a SELECT function to query the associated Google sheet for the Rows and Columns I will be using 在我的Google图表代码中,我使用SELECT函数查询关联的Google表格以获取要使用的行和列

I believe the query I am using is SQL, so with that fact in mind, I use the following Query to attempt to select Data from another sheet: 我相信我使用的查询是SQL,因此考虑到这一事实,我使用以下查询尝试从另一张表中选择数据:

SELECT A, B, C, D
FROM 'Sheet 2'

However an error comes up saying that the syntax is incorrect. 但是出现错误,说明语法不正确。 Below is the code for the chart itself, which, when there is no FROM syntax placed into the code, displays perfectly: 以下是图表本身的代码,当代码中未包含FROM语法时,该代码将完美显示:

<head>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script>
    google.load("visualization", '1', {packages:['corechart', 'bar']});
        google.setOnLoadCallback(drawChart);
        function drawChart() {
          var query = new google.visualization.Query(
              'https://docs.google.com/spreadsheets/d/1oKxlfCjcvjCzGh8fpTX3ax7qWbWA2uVVQgk-jzOWX3k/edit?usp=sharing');
            query.setQuery('SELECT A, B, C, D FROM "Sheet 2"');
          query.send(handleQueryResponse);
        }

        function handleQueryResponse(response) {
          if (response.isError()) {
            alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
            return;
          }

          var data = response.getDataTable();
            for (var i = 0; i < data.getNumberOfColumns(); i++) {
            }
          var chart = new google.visualization.ColumnChart(document.getElementById('columnchart'));
          chart.draw(data);
        }        
        </script>
</head>
    <body>
    <div id='columnchart'></div>
  </body>

If not the FROM syntax, then how would you define mutliple sheets using this method of creating a chart? 如果不是FROM语法,那么您将如何使用这种创建图表的方法来定义多重表?

You should set your sheet as "gid=838232320" and not in the queryString : 您应该将工作表设置为“ gid = 838232320”,而不是在queryString中:

 //google.load("visualization", '1', {packages:['corechart', 'bar']}); google.load('visualization', '1.0', {'packages':['corechart'], 'callback': drawChart}); google.setOnLoadCallback(drawChart); function drawChart() { console.log("drawChart: Init"); var queryString = encodeURIComponent('SELECT A, B, C, D'); var query = new google.visualization.Query('https://docs.google.com/spreadsheets/d/1oKxlfCjcvjCzGh8fpTX3ax7qWbWA2uVVQgk-jzOWX3k/gviz/tq?gid=838232320&headers=1&tq=' + queryString); // Apply query language statement. // query.setQuery('SELECT A, B, C, D FROM "Sheet 2"'); // Send the query with a callback function. query.send(handleQueryResponse); } function handleQueryResponse(response) { console.log("handleQueryResponse: ", response); if (response.isError()) { alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage()); return; } var data = response.getDataTable(); for (var i = 0; i < data.getNumberOfColumns(); i++) { } var chart = new google.visualization.ColumnChart(document.getElementById('columnchart')); chart.draw(data); } 
 <div id='columnchart'></div> <script type="text/javascript" src="https://www.google.com/jsapi"></script> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM