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