类型错误: 无法读取未定义的属性"值"(第 2 行,文件 "Auto Fill Google Doc" )



我试图使用一个应用程序脚本链接我的谷歌表单到谷歌文档模板。我跟随YouTube上的一个视频一步一步,但由于某种原因,我被这个错误标题卡住了

TypeError: Cannot read property 'values' of undefined(第2行,文件"Auto Fill Google Doc")

这是我的脚本:

function autoFillGoogleDocFromForm(e) {
var reasonForInjury = e.values[0];
var name = e.values[1];
var location = e.values[2];
var dateOfInjury = e.values[3];

var templateFile = DriveApp.getFileById("1qOXVwyh45nUJAWYgY7p7JdbexxrsNN-myLe8DQrn-Cs");
var templateResponseFolder = DriveApp.getFolderById("1zxIQ-_JzIhbcvE3iBEDL0VtvZpCUtTCT");

var copy = templateFile.makeCopy(name + ", " + location, templateResponseFolder);

var doc = DocumentApp.openById(copy.getId());

var body = doc.getBody()

body.replaceText("{{Reason for Injury}}", reasonForInjury);
body.replaceText("{{EE Name}}", name);
body.replaceText("{{Location}}", location);
body.replaceText("{{DOI}}", dateOfInjury);

doc.saveAndClose();

}

调试器说我的值未定义。我该如何纠正这一点?

e没有在代码片段中定义。因此,你可能在试图阅读一些不存在的东西。基本上,你需要弄清楚如何定义它。它是从哪里来的?

您正在尝试访问表单提交的事件对象,并且您在编辑器中运行代码而不是创建事件(提交表单)

e是一个事件对象,Apps Script将其作为参数传递给函数。事件对象包含有关触发触发器的上下文的信息。示例为用户提交的值。Event对象用于触发器。触发器可以让Apps Script在某个事件发生时自动运行一个函数,比如提交表单。

要解决这个问题,提交一个表单,并在函数的参数中添加事件对象。

你的代码应该是这样的:
function myFunction(e) {
var reasonForInjury = e.values[0];
var name = e.values[1];
var location = e.values[2];
var dateOfInjury = e.values[3];
var templateFile = DriveApp.getFileById("id");
var templateResponseFolder = DriveApp.getFolderById("id");
var copy = templateFile.makeCopy(name + ", " + location, templateResponseFolder);
var doc = DocumentApp.openById(copy.getId());
var body = doc.getBody()
body.replaceText("{{Reason for Injury}}", reasonForInjury);
body.replaceText("{{EE Name}}", name);
body.replaceText("{{Location}}", location);
body.replaceText("{{DOI}}", dateOfInjury);
doc.saveAndClose();
}

事件日志可以在Execution中看到

进一步阅读:

  • 事件对象
  • 如何设置Installable Trigger

相关内容

最新更新