我正在尝试使用 Google App Script 编写一个简单的内容服务 API。我的 doGet() 只接受一个参数“行”并从第 2 列返回该行中的值。这里是:
function doGet(req){
try{
reqRow = req.queryString.split('=')[1];
rowNum = parseInt(reqRow);
}
catch(err){
throw "Error: "+ err + " -- Here's what we got: " + req + "Did you include a row parameter?";
}
resultValue = getFromSheet(rowNum);
if(resultValue != ""){
result = {
"Result":"Success",
"Row": reqRow,
"Value" : resultValue
}
}
else{
result = {
"Result":"Failure",
"Row": reqRow,
"Value" : "No value found at row"
}
}
return ContentService.createTextOutput(JSON.stringify(result)).setMimeType(ContentService.MimeType.JSON);
}
这是我们简单的 getFromSheet 函数:
function getFromSheet(row){
if(typeof row != "number"){
row = Number(row);
Logger.log("converting");
}
sheetid = 111111111;
ss = SpreadsheetApp.openById(sheetid);
sheet = ss.getSheets()[0];
return ss.getRange(row, 2).getValue();
}
当我向它发布内容时,通过类似于
的 url"https://script.google.com/macros/s/111111111/exec?row=3"
我收到以下错误:
Cannot find method getRange(number,number).
注意:为什么我没有在 doGet() 方法中使用 req.parameters.row?因为我收到以下错误:
Cannot find method getRange((class),number).
getRange(number, number) 不是调用这个方法的主要方式吗?
这里是工作表类的引用指南: https://developers.google.com/apps-script/reference/spreadsheet/sheet
谢谢大家!
最佳答案
将变量名称更改为 rowRequest 而不是 row。
function getFromSheet(rowRequest){
if(typeof rowRequest != "number"){
rowRequest = Number(rowRequest);
Logger.log("converting");
}
ss = SpreadsheetApp.openById('12r0gHSgvBg8s_RJIuWJl-3aZCAGOpW0PfGb0SVGNu4Q');
sheet = ss.getSheets()[0];
result = sheet.getRange(rowRequest, 2).getValue();
return result;
}
关于javascript - 谷歌应用程序脚本 : Cannot find method getRange(number, 号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28327924/