引用错误: 电子表格应用程序未定义

ReferenceError: SpreadsheetApp is not defined

本文关键字:应用程序 未定义 电子表格 错误 引用      更新时间:2023-09-26

当我运行上面的代码时,我得到"参考错误:电子表格应用程序未定义"。有什么错误吗?这在脚本编辑器中工作,但在单独的文件中不起作用

<html>
<head>
    <title>Site</title>
</head>
<body>
<p id="demo"></p>
<script type='text/javascript' src='https://www.google.com/jsapi'></script>
<script>
var ss = SpreadsheetApp.openById('1-wYHx2ynT1fMAUKHSeRDBABjE_cAbJ2tfBP_deKjhGs');
document.getElementById("demo").innerHTML =ss.getName();
</script>
</body>
</html>

看看Google Apps Script教程。在大多数情况下,GAS 都是服务器端脚本,而您正在尝试获得对电子表格的客户端访问权限。它不是那样工作的。您需要按照其中一个教程进行操作,并打开脚本编辑器以开始编写代码。

您需要以 html 应用程序脚本允许您的方式重定向调用函数。请查看下面的简单行,它允许您访问任何功能

一个名为"Lookatme.html的文件

</script>
function doStuff() {
google.script.run.doStuff()
console.log("ggg")
  }
        </script>

如果它是一个与HTML文件不同的.gs扩展文件,它将识别下面的代码和任何扩展应用程序脚本的内置函数

一个名为"anyfile.gs"的文件

function doStuff() {
console.log("ggg")
// google.script.run.userClicked(userInfo)
var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1i9of_RcoDih65x2h7-agSdCaUSvc1fvfOm4Y7dQEb-s/edit#gid=0")
var ws = ss.getSheetByName("Data")
ws.appendRow(["name"])
  }