无法在google docs文件中找到功能错误

时间:2018-03-09 21:17:42

标签: javascript google-apps-script

我知道一些JS和我在MSO的VBA脚本方面有相当多的经验,但我刚刚开始学习如何编写google docs脚本,而且我在使用google脚本环境时遇到了困难

我在google驱动器上创建了一个doc,我正在尝试在代码中记录输出,但是当我收到错误时出现错误 TypeError:在对象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]");
}

有人可以解释我收到此错误的原因吗?

2 个答案:

答案 0 :(得分:3)

您收到该错误,因为getFilesByName("name").next()返回的类型为File,而非Document

解决方案是使用File中的DriveApp通过Document明确打开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;
}

答案 1 :(得分:2)

您的变量LogDocFile,但您希望它是Document

投射它的最佳方法是获取它的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()