0

使用谷歌教程使用电子表格作为图表数据我创建了以下内容。 Tutorial谷歌图表 - 使用Spreadhseet源代码不能解决

<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。

如果可以有一个合并的答案获取正确的工作表网址,那将会很棒。

+0

这个html应该在哪里使用?您想要将图表显示为[电子表格对话框](https://developers.google.com/apps-script/guides/dialogs),还是要将其作为[网络应用]单独提供(https: //developers.google.com/apps-script/guides/web)? – Adelin

+0

作为电子表格对话框中的Web应用程序仅支持有限数量的图表。我刚刚创建了一个basic.html文件,并启动了一个python简单服务器 – sayth

回答

1

this你试图实现什么?

如果是的话,你可以检查它是如何工作的here

编辑

因为我在你要查询的电子表格,而不是用整个电子表格的评论注意到,这是查询逻辑。

首先,这些是URL的查询的基本组件:

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可变

URL的第一位是在partialUrl变量。 然后,您需要使用google提供的Query Language。一个例子是:

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

然后,您需要调用encodeURIComponent()它,并把它添加到部分URL。最终的URL就变成

var finalUrl = partialUrl + encodeURIComponent(queryToRun); 

只有到那时,我怀疑你打算就可以运行google.visualiation.query。

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

嗨,谢谢,当我的教程直接从教程中复制时,为什么你的工作不行?我错误地认为链接是错误的,因为它似乎是一个常见问题,并且预期的教程代码可以工作 – sayth

+1

是的,首先,链接是错误的。其次,在chart.draw(data,{height:400})下有2个大括号。 }'。最后你调用'google.charts.setOnLoadCallback(drawChart);'但'drawChart'未定义。我在那里做的是使用'drawSheetName'来代替。我希望这回答了你的问题。 – Adelin

+0

未来我如何获得正确的链接,我从浏览器中搜索并添加了gid和头文件作为教程。有没有一种方法可以检查有效性? – sayth