Javascript 在google文档文件中找不到函数错误

Javascript 在google文档文件中找不到函数错误,javascript,google-apps-script,Javascript,Google Apps Script,我知道一些JS,并且我对MSO的VBA脚本有相当多的经验,但我刚刚开始学习如何编写google文档,我在google脚本环境中遇到了困难 我在我的谷歌硬盘上创建了一个文档,我试图在代码中记录输出,但是当我得到错误类型时,我得到了一个错误错误错误:在object Excel下载宏日志文件中找不到函数getBody。(第56行,文件“代码”)当我尝试运行此代码时: function logDataFromCode() { var LogDoc = DriveApp.getFilesByName

我知道一些JS,并且我对MSO的VBA脚本有相当多的经验,但我刚刚开始学习如何编写google文档,我在google脚本环境中遇到了困难

我在我的谷歌硬盘上创建了一个文档,我试图在代码中记录输出,但是当我得到错误类型时,我得到了一个错误错误错误:在object Excel下载宏日志文件中找不到函数getBody。(第56行,文件“代码”)当我尝试运行此代码时:

function logDataFromCode() {

  var LogDoc = DriveApp.getFilesByName('Excel Download Macro Log File').next();

  // Access the body of LogDoc, then add a paragraph with relevant data from script:
  LogDoc.getBody()
    .appendPageBreak()
    .appendParagraph("[put variables to log here]");
}

有人能解释一下我为什么会出现这个错误吗?

您的变量
LogDoc
是一个
文件,但您希望它是一个
文档

转换它的最佳方法是获取它的id,然后使用
DocumentApp
访问它以打开它

像这样:

var LogFile = DriveApp.getFilesByName('Excel Download Macro Log File').next();
var LogDoc = DocumentApp.openById(LogFile.getId());
// Access the body of LogDoc, then add a paragraph with relevant data from script:
LogDoc.getBody()

您的变量
LogDoc
是一个
文件
,但您希望它是一个
文档

转换它的最佳方法是获取它的id,然后使用
DocumentApp
访问它以打开它

像这样:

var LogFile = DriveApp.getFilesByName('Excel Download Macro Log File').next();
var LogDoc = DocumentApp.openById(LogFile.getId());
// Access the body of LogDoc, then add a paragraph with relevant data from script:
LogDoc.getBody()

之所以出现此错误,是因为
getFilesByName(“name”)返回的类。next()
的类型不是

解决方案是使用
DriveApp
中的
文件
通过
DocumentApp
显式打开
文档

var LogDoc, files = DriveApp.getFilesByName("the file name");
if(files.hasNext()) {
  LogDoc = DocumentApp.openById(files.next().getId());
} else {
  // No files matched the name supplied to DriveApp
  return;
}

之所以出现此错误,是因为
getFilesByName(“name”)返回的类。next()
的类型不是

解决方案是使用
DriveApp
中的
文件
通过
DocumentApp
显式打开
文档

var LogDoc, files = DriveApp.getFilesByName("the file name");
if(files.hasNext()) {
  LogDoc = DocumentApp.openById(files.next().getId());
} else {
  // No files matched the name supplied to DriveApp
  return;
}

如果您记录
LogDoc
,它是什么类型的对象?只需运行
Logger.log(LogDoc)
您是否尝试强制转换它?看起来
LogDoc
是一个
文件
而您想要一个
文档
,请尝试调用
((文档)LogDoc).getBody()
它会给您带来什么错误?演员阵容似乎不起作用,哼。尝试
var doc=DocumentApp.openById(LogDoc.getId());doc.getBody()
?如果您记录
LogDoc
,它是什么类型的对象?只需运行
Logger.log(LogDoc)
您是否尝试强制转换它?看起来
LogDoc
是一个
文件
而您想要一个
文档
,请尝试调用
((文档)LogDoc).getBody()
它会给您带来什么错误?演员阵容似乎不起作用,哼。尝试
var doc=DocumentApp.openById(LogDoc.getId());doc.getBody()