0

Используя учебное пособие из Google для использования электронной таблицы в качестве данных для диаграммы, я создал следующее. TutorialGoogle Chart - Использование источника 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 для существующих электронных таблиц.

Было бы здорово, если бы был консолидированный ответ, на котором были получены правильные URL-адреса листов.

+0

Где этот html предполагается использовать? Вы хотите отобразить диаграмму в виде диалогового окна [таблицы электронной таблицы] (https://developers.google.com/apps-script/guides/dialogs) или вы хотите использовать его отдельно как [веб-приложение] (https: //developers.google.com/apps-script/guides/web)? – Adelin

+0

Как веб-приложение, так как диалог электронных таблиц поддерживает только ограниченное количество графиков. Я просто создал файл basic.html и создал простой сервер python – sayth

ответ

1

this Что вы пытаетесь достичь?

Если да, вы можете проверить, как это работает here.

EDIT

Поскольку я заметил в комментариях, которые вы хотите, чтобы запросить таблицу и не использовать всю таблицу, это логика для запроса с.

Во-первых, они являются основными компонентами 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. Затем вам нужно использовать Query Language, который предоставляет Google. Примером может быть:

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

Да, во-первых, ссылка была неправильной. Во-вторых, у вас было 2 закрывающих фигурные скобки под 'chart.draw (данные, {height: 400}); } '. И, наконец, вы назвали 'google.charts.setOnLoadCallback (drawChart);' но 'drawChart' не определено. Вместо этого я использовал «drawSheetName». Надеюсь, это ответит на ваши вопросы. – Adelin

+0

Как правильно получить ссылку в будущем, я ворковал из браузера и добавил gid и headers в качестве учебника. Есть ли способ, который вы используете для проверки действительности? – sayth

Смежные вопросы