Google apps script 无法获取返回ContentService的脚本
我知道这个脚本可能会更好,但我对任何语言的脚本都很陌生,我只是在玩弄工作的想法。这基本上只是谷歌搜索结果的一个弗兰肯斯坦组合,我想实现的目标,但我已经走到了死胡同 我正在使用另一个脚本中的一个方面为webapp返回JSON格式的contentservice,但在本例中它不起作用 据我所知,它应该工作得很好,如果我用下面的browser.msgbox替换return contentservice,我会得到我想要的返回值,但是当使用contentservice并转到指向范围的脚本时,我会得到错误,脚本已完成,但没有返回任何内容Google apps script 无法获取返回ContentService的脚本,google-apps-script,Google Apps Script,我知道这个脚本可能会更好,但我对任何语言的脚本都很陌生,我只是在玩弄工作的想法。这基本上只是谷歌搜索结果的一个弗兰肯斯坦组合,我想实现的目标,但我已经走到了死胡同 我正在使用另一个脚本中的一个方面为webapp返回JSON格式的contentservice,但在本例中它不起作用 据我所知,它应该工作得很好,如果我用下面的browser.msgbox替换return contentservice,我会得到我想要的返回值,但是当使用contentservice并转到指向范围的脚本时,我会得到错误,脚
var mysheet = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1sPuqdg0Va9LLQudl2ta23b-CGEF_-FFSTeggRw3J4L4/edit").getSheetByName('Sheet3');
var sheet = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1sPuqdg0Va9LLQudl2ta23b-CGEF_-FFSTeggRw3J4L4/edit").getSheetByName('Sheet1');
function doGet(e){
var action = e.parameter.action;
if(action == 'Range'){
return Range(e);
}
}
function Range(e) {
let term = 'Customer 6';
var sdata = mysheet.getRange("A:A").getValues();
sdata.forEach((val, index) => {
if(val == term){
var msgr = "B" + (index+1)
var msgc = "D" + (index+1)
var rrow = mysheet.getRange(msgr).getValue();
var ccol = mysheet.getRange(msgc).getValue();
var data = sheet.getRange("E" + rrow + ":I"+ccol);
var records={};
var rows = sheet.getRange("E" + rrow + ":I"+ccol).getValues();
data = [];
for (var r = 0, l = rows.length; r < l; r++) {
var row = rows[r],
record = {};
record['Product'] = row[0];
record['Case']=row[2];
record['Order QTY']=row[3];
record['Packed']=row[4];
data.push(record);
}
records.items = data;
var result=JSON.stringify(records);
return ContentService.createTextOutput(result).setMimeType(ContentService.MimeType.JSON);
// Browser.msgBox(result);
}})}
我不明白为什么我得到了msgBox的正确返回值,但是ContentService没有得到结果
任何帮助都将不胜感激。提前谢谢
编辑:我每修订一次都会发布新的webapp版本,这会中断,因为您是从forEach循环中返回的。请查看: 除了抛出异常之外,没有其他方法可以停止或中断forEach循环。如果需要这种行为,forEach方法是错误的工具 最简单的修复方法是使用
这会中断,因为您是从forEach循环中返回的。请查看: 除了抛出异常之外,没有其他方法可以停止或中断forEach循环。如果需要这种行为,forEach方法是错误的工具 最简单的修复方法是使用
你需要在做任何更改后重新发布你的Web应用程序我应该在帖子中提到我现在会更新它,但是是的,每次我做我想测试的更改时我都会重新发布新版本。你需要在做任何更改后重新发布你的Web应用程序我应该在帖子中提到我现在会更新它,但是,是的,每次我要测试的更改都会重新发布新版本。
function Range(e) {
let term = 'Customer 6';
var sdata = mysheet.getRange("A:A").getValues();
for (var index = 0; index < sdata.length; index++) {
var val = sdata[index];
if(val == term){
var msgr = "B" + (index+1)
var msgc = "D" + (index+1)
var rrow = mysheet.getRange(msgr).getValue();
var ccol = mysheet.getRange(msgc).getValue();
var data = sheet.getRange("E" + rrow + ":I"+ccol);
var records={};
var rows = sheet.getRange("E" + rrow + ":I"+ccol).getValues();
data = [];
for (var r = 0, l = rows.length; r < l; r++) {
var row = rows[r],
record = {};
record['Product'] = row[0];
record['Case']=row[2];
record['Order QTY']=row[3];
record['Packed']=row[4];
data.push(record);
}
records.items = data;
var result=JSON.stringify(records);
return ContentService.createTextOutput(result).setMimeType(ContentService.MimeType.JSON);
}
}
}