我有以下谷歌应用程序脚本最终返回一个矩阵,但我能够改变行并使用appendRow方法,因为我试图从自定义函数调用它。
咨询有关自定义函数返回的有关stackoverflow和GAS文档的其他相关问题,应该在调用它的单元格中显示。
我能够在Google脚本编辑器中使用GAS Logger查看返回,但就是这样。如何输出到工作表或以其他方式保存并导出此响应?
示例响应如下:
[[diy_move, forward_mail, update_account, renters_insurance, recommended_provider, utility, home_service, offer, share],
[forward_mail, update_account, utility, home_service, offer, share]]
// Get current row
function getActiveRow() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var activeRow = sheet.getActiveCell().getRow();
return activeRow;
}
// call updater api
function getSteps() {
var values = SpreadsheetApp.getActiveSheet().getDataRange().getValues();
var userIds = [];
var sheet = SpreadsheetApp.getActiveSheet();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sss = ss.getSheets()[0];
var range = sheet.getRange(getActiveRow(), 1, 1, 1);
var id = range.getValues();
function first(list) {
return list[0];
}
function getProperty(property) {
return function (item) {
return item[property];
}
}
var getCode = getProperty('code');
var userIds = values.map(first);
var headers = {
// auth
"Content-Type": "application/json",
"app": "company",
"uid": "phong@updater.com",
"client": "*****",
"access-token": "*****"
};
var options = {
"method": "GET",
"headers": headers
//"muteHttpExceptions": true
};
function callApi(id) {
var url = "http://api.updater.com/v2/item_definitions?user_id=" + id;
var response = UrlFetchApp.fetch(url, options)
var json = response.getContentText();
var data = JSON.parse(json);
return data.map(getCode);
}
function createSupersteps(ids) {
return ids.map(callApi);
}
Logger.log(createSupersteps(userIds));
sss.appendRow(createSupersteps(userIds));
//createSupersteps(userIds)
}

答案 0 :(得分:0)
尝试将[]添加到sss.appendRow([createSupersteps(userIds)]);
,使其成为 var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
// Appends a new row with 3 columns to the bottom of the
// spreadsheet containing the values in the array
sheet.appendRow(["a man", "a plan", "panama"]);
。
基于文档示例代码appendRow(rowContents)
在电子表格中添加一行。这个操作是原子的;它可以防止用户请求最后一行的问题,然后写入该行,并在获取最后一行和写入它之间发生插入变异。
function insert(){
var ss = SpreadsheetApp.openById('FILE_ID');
var sheet = ss.getSheets()[0];
var sample = "sample";
// Appends a new row with 3 columns to the bottom of the
// spreadsheet containing the values in the array
sheet.appendRow([sample]);
}
以下是我的示例代码:
function ascii_to_hexa(str)
{
var arr1 = [];
for (var n = 0, l = str.length; n < l; n ++)
{
var hex = Number(str.charCodeAt(n)).toString(16);
arr1.push(hex);
}
return arr1.join('');
}
尝试使用sheet.appendRow(示例)添加;给出错误
希望这有帮助。