我需要将 2 个“变量”或“数组”从我的 Code.gs 传递到我的 index.html/javascript。 2 个“变量”是我的工作表的值和单元格的背景颜色。 如果我只传递 1 个变量(waardes 或 kleuren),函数会起作用,如果我尝试同时传递它们,我只会在“return waardes,kleuren”中获得最后一个变量传递。
//代码.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
}
}
最佳答案
与基本的编程概念一样,大多数编程语言只从函数返回一个值。阅读本文 "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];
}
关于javascript - Google 应用程序脚本,将(两个)2 "variables"或 "array"从 code.gs 传递到 index.html/Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37961108/