【问题标题】:Google apps script, pass (two) 2 "variables" or "array" from code.gs to index.html / Javascript谷歌应用程序脚本,将(两个)2“变量”或“数组”从 code.gs 传递到 index.html / Javascript
【发布时间】:2016-06-22 07:20:35
【问题描述】:

我需要将 2 个“变量”或“数组”从我的 Code.gs 传递到我的 index.html / javascript。这两个“变量”是我的工作表的值和单元格的背景颜色。 如果我只传递 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
    }
}

【问题讨论】:

标签: javascript arrays google-apps-script


【解决方案1】:

与基本编程概念一样,大多数编程语言只从函数返回一个值。阅读这篇文章"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];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-10
    相关资源
    最近更新 更多