Когда я запускаю его как скрипт Google (в code.gs), он работает, однако, когда я беру его в файл index.html, я не могу получить все данные из электронной таблицы.
листы должны быть в формате 3D, sheets[0]
должен отображать все данные на листе 0 (строки х столбцы)
Но вместо этого в data
я получаю то, что выглядит как строка (когда я делаю data[0]
, он показывает только первый символ). Почему?
Вот код:
GAS
function doGet(request) {
return HtmlService.createTemplateFromFile('index')
.evaluate();
}
function include(filename) {
return HtmlService.createHtmlOutputFromFile(filename)
.getContent();
}
function getSheetsData(){
ss = SpreadsheetApp.openById('id_key');
var sheets = [];
for (var i = 0; i < ss.getSheets().length; ++i) {
sheets.push(ss.getSheets()[i].getDataRange().getDisplayValues());
}
return (sheets)
}
СТОРОНА КЛИЕНТА
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<?!= include('css'); ?>
<!-- the idea is to pull the data from the spreadsheet and build slides with the questions to show a Quiz of questions (not yet done)-->
<script>
var datas = null;
google.script.run.withSuccessHandler(function(result){
datas = result;
console.log(datas); //YES, datas has the data
}).getSheetsData();
console.log(datas); //NO, datas is null
</script>
</head>
<body>
<h1>TESTS QUIZ [WEB APP]
<br>
<br>
<!-- Build select options from spreadsheet sheets -->
<? var ss = SpreadsheetApp.openById('id_key'); ?>
<select class="classic" id="sheet" onchange="someFunctionWillGoHereToStartTheQuiz">
<option value="" disabled selected style="display:none;">Choose Quiz</option>
<? for (var i = 0; i < ss.getSheets().length; ++i) { ?>
<option value="<?=i?>"><?= ss.getSheets()[i].getSheetName() ?></option>
<? } ?>
</select>
<br>
<br>
</h1>
<!--some code will go here to show the questions in the page-->