首页 > 解决方案 > 将谷歌电子表格与 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 &#39;getSheets&#39; of null (line: 15, file: &quot;denandroid&quot;)</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 我尝试了这两个名称。但不成功。

我将此行用于连接电子表格。

https://script.google.com/macros/s/AKfycbyTt9oaz10WuKh0822hBncRoJZAw-D4hcGMwJwdy95l8H_mXfE/exec?ID=18NFZD7vZ-JySbbV7jiZMBpiBsoLJ4IQge9Wk9cL6Z4c&SH=Sheet1&func=ReadAll

请帮忙。谢谢

标签: google-sheets

解决方案


问题解决了。问题是共享问题。共享时,应该是(任何人,甚至匿名)。google 一直想让我登录。共享时(脚本代码文件)必须是,在第一个窗口中,(我和 gmail 地址)应该被选中。(任何人,甚至匿名)都应该在第二个窗口中被选中。工作表名称没问题


推荐阅读