我需要将 Code.gs 中的2个“变量”或“数组”传递到我的 index.html / javascript。 2“变量”是我的工作表的值和单元格的背景颜色。 如果我只传递1个变量(waardes或kleuren),则该函数可以正常工作,如果我尝试同时传递它们,我只会在“return waardes,kleuren”中获得最后一个变量。
// code.gs
function getSheetData(){
var ss = spreadsheetApp.openById("1EpOCr_wjeYhn2YsQjRpAaUtaJNKv_4Rf81vnG59EvPA").getSheetByName("sheet");
var waardes, kleuren;
waardes = ss.getDataRange().getValues();
kleuren = ss.getDataRange().getBackgrounds();
return waardes, kleuren;
}
// index.html / javascript
function functionShowSheet() {
google.script.run.withSuccessHandler(showValuesandColors).getSheetData();
function showValuesandColors (waardes, kleuren) {
alert(waardes);
alert(waardes[0][0]);
// do something with the values and colors
}
}
答案 0 :(得分:2)
与基本编程概念一样,大多数编程语言只返回函数中的一个值。阅读这篇文章"Why do most programming languages only return a single value from a function?"
因此,您无法从javascript中的函数返回多个变量中的多个值。
该怎么做?
您可以返回一个集合,即一个包含函数中多个值的对象或数组。
function getSheetData(){
var ss = spreadsheetApp.openById("1EpOCr_wjeYhn2YsQjRpAaUtaJNKv_4Rf81vnG59EvPA").getSheetByName("sheet");
var waardes, kleuren;
waardes = ss.getDataRange().getValues();
kleuren = ss.getDataRange().getBackgrounds();
return {waardes: waardes, kleuren: kleuren};
}
然后获取index.html中的值
function showSheet(){
google.script.run.withSuccessHandler(showValuesandColors).getSheetData();
}
function showValuesandColors (myObj) {
var waardes = myObj.waardes;
var kleuren = myObj.kleuren;
}
你也可以返回一个数组而不是像这样的对象:
在code.gs
中function getSheetData(){
....
var resArr = [waardes, kleuren];
return resArr;
}
index.html中的
function showValuesandColors (myArr) {
var waardes = myArr[0];
var kleuren = myArr[1];
}