簡體   English   中英

Google Apps腳本,將兩個(變量)2個“變量”或“數組”從code.gs傳遞給index.html / Javascript

[英]Google apps script, pass (two) 2 “variables” or “array” from code.gs to index.html / Javascript

我需要將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
    }
}

與基本編程概念一樣,大多數編程語言從該函數僅返回一個值。 閱讀本文“為什么大多數編程語言僅從函數返回單個值?”

因此,您無法從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];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM