[英]How do I use two variables in my function?
所以我有多個腳本。 一個腳本從 Googlesheet 檢索數據並將其解析為 JSON。 另一個使用它來將其輸出為 HTML。
我的第一次:
function getStatistics() {
var sheet = SpreadsheetApp.openById("ID");
var rowsData = sheet.getRange("A:A").getValues();
var result = JSON.stringify(rowsData);
var funcNumber = 1;
return result;
}
這將從 A 列中的電子表格中檢索數據。
第二個腳本,在這里我想在我的函數中同時使用 'Result' 和 'Funcnumber'。
function onSuccess(data, funcNumber) {
var dataJson = JSON.parse(data);
var newColumn = document.createElement("div");
newColumn.className = "column";
for(var i = 0; i < dataJson.length; i++) {
if (dataJson[i] != "") {
var div = document.getElementById('cont-' + funcNumber);
var newDiv = document.createElement("div");
newDiv.innerHTML = dataJson[i];
newColumn.appendChild(newDiv);
}
}
div.appendChild(newColumn);
}
使用 Json 結果解析 HTML 工作。 但不是從函數中檢索'funcNumber'
。 然后最后我用這一行調用第一個函數: google.script.run.withSuccessHandler(onSuccess).getStatistics();
有人知道如何在我的第二個函數中同時使用result
和funcNumber
嗎?
function getStatistics() {
var ss = SpreadsheetApp.openById("ID");
const sheet = ss.getSheetByName('Sheet1');
let result = {data:JSON.stringify(sheet.getRange(1,1,sheet.getLastRow(),1).getValues()),funcNumber:1}
return result;
}
function onSuccess(obj) {
var dataJson = JSON.parse(obj.data).flat();
var newColumn = document.createElement("div");
newColumn.className = "column";
for (var i = 0; i < dataJson.length; i++) {
if (dataJson[i] != "") {
var div = document.getElementById('cont-' + obj.funcNumber);
var newDiv = document.createElement("div");
newDiv.innerHTML = dataJson[i];
newColumn.appendChild(newDiv);
}
}
div.appendChild(newColumn);
}
單列或單行仍然是二維數組
以下是在 Google 腳本中進行調用以返回第二個參數值的方法。
google.script.run .withSuccessHandler(onSuccess) .withUserObject(funcNumber) .getStatistics()
WithUserObject() 需要在 withSuccessHandler 之后調用。
請參閱以下有關 Google 腳本的文檔
withUserObject(對象)
設置一個對象作為第二個參數傳遞給成功和失敗處理程序。 這個“用戶對象”——不要與 User 類混淆——讓回調函數響應客戶端聯系服務器的上下文。 由於用戶對象不發送到服務器,因此它們不受服務器調用的參數和返回值的限制。 但是,用戶對象不能是使用 new 運算符構造的對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.