Google脚本可对多个Google云端硬盘文档进行相同的格式更改

时间:2018-09-29 15:02:35

标签: javascript google-apps-script google-drive-api google-docs

我正在尝试将一堆Google文档(全部包含在一个Google云端硬盘文件中)的方向从默认(纵向)页面方向更改为横向。我正在使用以下代码,但在“ getBody”行上出现错误。我怀疑是因为在遍历文档的过程中此代码实际上没有“查看”文档,但是我不知道如何解决该错误。

  

错误:TypeError:无法调用null的方法“ getBody”。 (第8行,文件“代码”)   页面方向

    function loop() {
     var folder=DriveApp.getFolderById('ID');
     var files=folder.getFiles();
     while(files.hasNext()){
     var file=files.next();
     var body = doc.getBody();
     setPageOrientation(file);
    }
}
function setPageOrientation(file){
    var doc = DocumentApp.getActiveDocument();
    var body = doc.getBody();
    var pointsInInch = 72;
    body.setPageHeight(8.5 * pointsInInch);  //8.5 inches
    body.setPageWidth(11 * pointsInInch); // 11 inches
  }

顺便说一句,我知道第二个函数(setPageOrientation)是有效的,因为我已将其绑定到单个Google文档,并且可以工作。

1 个答案:

答案 0 :(得分:0)

以下脚本有效。它将在我的Google云端硬盘中打开一系列文档(一个接一个),并循环浏览每个文档,将格式从纵向更改为横向。

function loop() {
  var folder = DriveApp.getFolderById('folderId');
  var files = folder.getFiles();
  while (files.hasNext()){
    var file = files.next();
    var id = file.getId();// To get FileId of the file
    var doc = DocumentApp.openById(id);// To open file object as doc
    var body = doc.getBody();
    var pointsInInch = 72;
    body.setPageHeight(8.5 * pointsInInch);  //8.5 inches
    body.setPageWidth(11 * pointsInInch); // 11 inches
  }
}