google-sheets - 将谷歌电子表格与 mit2 应用程序发明者一起使用
问题描述
我想在安卓上使用谷歌电子表格。我尝试了示例程序。我创建了新的数据表。我使用了示例脚本代码。我尝试了 mit2 应用程序。该程序是示例程序。我也用过邮递员。邮递员告诉我错误。Postman 错误页面。Postman 连接错误状态 200 OK。
邮递员错误信息是:
<!DOCTYPE html>
<html>
<head>
<link rel="shortcut icon" href="//ssl.gstatic.com/docs/script/images/favicon.ico">
<title>ERROR</title>
<style type="text/css" nonce="B6c+P2HTW+vClzlpE+anwg">body {background-color: #fff; margin: 0; padding: 0;}.errorMessage {font-family: Arial,sans-serif; font-size: 12pt; font-weight: bold; line-height: 150%; padding-top: 25px;}</style>
</head>
<body style="margin:20px">
<div>
<img alt="Google Apps Script" src="//ssl.gstatic.com/docs/script/images/logo.png">
</div>
<div style="text-align:center;font-family:monospace;margin:50px auto 0;max-width:600px">TypeError: Cannot read property 'getSheets' of null (line: 15, file: "denandroid")</div>
</body>
</html>
脚本代码是:
function doGet(e) {
return ManageSheet(e);
}
function doPost(e) {
return ManageSheet(e);
}
function ManageSheet(e) {
//READ ALL RECORDS
if ( e.parameter.func == "ReadAll") {
var ss = SpreadsheetApp.getActive();
var sh = ss.getSheets()[0]; // Postman problem line.
var rg = sh.getDataRange().getValues();
var outString = '';
for(var row=0 ; row<rg.length ; ++row){
outString += rg[row].join(',') + '\n';
}
return ContentService.createTextOutput(outString).setMimeType(ContentService.MimeType.TEXT);
}
//DELETE SINGLE RECORD
else if (e.parameter.func == "Delete") {
var record = e.parameter.id;
var ss = SpreadsheetApp.getActive();
//var ss = SpreadsheetApp.openById(e.parameter.ID);
var sh = ss.getSheets()[0];
//var sh = ss.getSheetByName(e.parameter.SH);
sh.deleteRow(parseInt(record) + 1); //makes the correct row to delete (because of header row)
return ContentService.createTextOutput("Success, requested action completed");
}
}
邮递员在脚本代码第 15 行说问题行。 ( var sh = ss.getSheets()[0]; // 邮递员问题行)
我也在谷歌表格上使用土耳其语。英文名称 Sheet1 土耳其语 Sayfa1 我尝试了这两个名称。但不成功。
我将此行用于连接电子表格。
请帮忙。谢谢
解决方案
问题解决了。问题是共享问题。共享时,应该是(任何人,甚至匿名)。google 一直想让我登录。共享时(脚本代码文件)必须是,在第一个窗口中,(我和 gmail 地址)应该被选中。(任何人,甚至匿名)都应该在第二个窗口中被选中。工作表名称没问题