Google图表 - 使用Spreadhseet来源无法解析

时间:2016-02-25 04:06:13

标签: charts google-apps-script google-sheets google-visualization

使用谷歌的教程使用电子表格作为图表的数据我创建了以下内容。 Tutorial

<head>
  <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
  <script type="text/javascript">
    google.charts.load('current', {packages: ['corechart']});
    google.charts.setOnLoadCallback(drawChart);


    function drawSheetName() {
  var query = new google.visualization.Query('https://docs.google.com/spreadsheets/d/15l3ZK45hv2ByOfkUiAKoKp-Z9a1u1-Q_rsLS7SqC51E/editgid=0&headers=1');
  query.send(handleQueryResponse);
}

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

    var data = response.getDataTable();
      var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
      chart.draw(data, { height: 400 });
    }
      }}


  </script>
</head>
<body>
<!-- Identify where the chart should be drawn. -->

<div id="chart_div"/>
</body>

然而,没有图表结算,我已将链接公开。 如果我分享链接,则为https://docs.google.com/spreadsheets/d/15l3ZK45hv2ByOfkUiAKoKp-Z9a1u1-Q_rsLS7SqC51E/edit?usp=sharing

关注文档并且不确定我的错误在哪里。

这个SO更多关于drive-sdk的回答是从新文件的脚本创建密钥,我真的不明白它和核如何获得现有电子表格的正确URL。

如果可以获得一个合并的答案来获得正确的表格URL,那就太棒了。

1 个答案:

答案 0 :(得分:1)

this你想要实现的目标是什么?

如果是,您可以查看其工作原理here

修改

由于我在评论中注意到您要查询电子表格而不使用整个电子表格,因此这是查询的逻辑。

首先,这些是要查询的网址的基本组成部分:

var BASE_URL = "https://docs.google.com/a/google.com/spreadsheets/d/";
var SS_KEY = "stringSS_Key";
var BASE_QUERY = "/gviz/tq?tq=";
var partialUrl = BASE_URL + SS_KEY + BASE_QUERY;

请注意BASE_QUERY变量

网址的第一位位于partialUrl变量中。 然后,您需要使用谷歌提供的Query Language。一个例子是:

var queryToRun = 'select dept, sum(salary) group by dept';

然后,您需要在其上调用encodeURIComponent(),并将其添加到部分网址。然后最终的URL变为

var finalUrl = partialUrl + encodeURIComponent(queryToRun);

只有这样你才能运行google.visualiation.query,因为我怀疑你打算这样做。

var query = new google.visualization.Query(finalUrl);