Это код на моей html-странице:
<table id="table_id" class="display"></table>
<div id="status">Goodbye</div>
, а затем и позже
<script>
document.getElementById('table_id').innerHTML = google.script.run.getTable();
document.getElementById('status').innerHTML ='<p>Thanks!</p>';</script>
Часть статуса работает (я тестировал, чтобы убедиться, что скрипты были подтверждены в этой части страницы.
функция getTable, тем не менее, устанавливает значение «undefined».
getTable находится на моей странице code.gs
function getTable(){
var sh = SpreadsheetApp.openById('XXX-t_SjDjQhe3enJYB40');
var ss = sh.getSheetByName("Form");
var data = ss.getDataRange().getValues();
var htmlTable = '<tr><th>Project</th><th>Who</th><th>Status</th><th>Details</th><th>Advance Status</th></tr>';
for (var i=0; i<data.length;i++)
{
var project = data[i][11];
var who = data[i][1];
var status = data[i][10];
var link = data[i][12];
if (status == ""){ status = 1; ss.getRange(i+1,9).setValue(1); }
htmlTable +="<tr>";
htmlTable +="<td>"+project+"</td>";
htmlTable +="<td>"+who+"</td>";
htmlTable +="<td>"+status+"</td>";
htmlTable +="<td><a href='"+link+"'</a></td>";
}//for loop
htmlTable +='<td><input type ="button" id="arrow" value="-->" onclick =""/></td></tr>';
//htmlTable += "</table>";
return htmlTable;
} // ******************************************** *********************************
Вещи, которые я пробовал.
Изначально в getTable были «табличные» обертки (но потом я подумал, что они могут не взаимодействовать с частью innerhtml). Я также протестировал эту функцию самостоятельно, и она действительно возвращает строку строки, которая является правильной HTML-таблицей, поэтому она не возвращает ничего в обычном контексте.
Мне обязательно нужно использовать здесь обработчик успеха и другую функцию? Я чувствую, что это выглядит так, как будто это должно работать