将.XLSX转换为Google Sheet并移动转换后的文件的脚本

时间:2019-05-09 15:44:02

标签: google-apps-script google-sheets google-drive-api delete-file file-conversion

我知道可以使用脚本和驱动器API将excel文件转换为Google表格,但是我正在寻找脚本来转换excel表格并将转换后的文件移动到其他文件夹。

因此,所需步骤如下:

  1. 从FolderA将excel(.xls / .xlsx)转换为Google表格。
  2. 将转换后的文件从FoldarA移至FolderB。
  3. 从FolderA删除原始Excel文件
  4. 希望第3步可以避免这种情况,但要避免复制已转换的文件。

Excel文件被粘贴到正在同步到Google驱动器的本地文件夹中,并且文件大小不超过3mb。当前脚本如下。这是在转换文件,但将它们放置在根文件夹中,并且在脚本再次运行时将复制该转换。

 function importXLS(){
  var files = DriveApp.getFolderById('1hjvNIPgKhp2ZKIC7K2kxvJjfIeEYw4BP').searchFiles('title != "nothing"');
  while(files.hasNext()){
    var xFile = files.next();
    var name = xFile.getName();
    if (name.indexOf('.xlsx')>-1){ 
      var ID = xFile.getId();
      var xBlob = xFile.getBlob();
      var newFile = { title : name+'_converted',
                     key : ID
                    }
      file = Drive.Files.insert(newFile, xBlob, {
        convert: true
      });
    }
  }
}

1 个答案:

答案 0 :(得分:0)

  • 您想将转换后的Google Spreadsheet文件创建为“ FolderB”。
  • 转换文件后,要删除“ FolderA”中的XLSX文件。
  • 您要使用Google Apps脚本实现以上目标。

如果我的理解正确,那么此修改如何?在此修改中,我修改了您的脚本。

修改点:

  • 您可以使用请求正文中的parents属性直接将文件创建到特定文件夹。
  • 您可以使用Drive.Files.remove(fileId)删除文件。

修改后的脚本:

function importXLS(){
  var folderBId = "###"; // Added // Please set the folder ID of "FolderB".

  var files = DriveApp.getFolderById('1hjvNIPgKhp2ZKIC7K2kxvJjfIeEYw4BP').searchFiles('title != "nothing"');
  while(files.hasNext()){
    var xFile = files.next();
    var name = xFile.getName();
    if (name.indexOf('.xlsx')>-1){ 
      var ID = xFile.getId();
      var xBlob = xFile.getBlob();
      var newFile = {
        title : name+'_converted',
        parents: [{id: folderBId}] //  Added
      };
      file = Drive.Files.insert(newFile, xBlob, {
        convert: true
      });
      // Drive.Files.remove(ID); // Added // If this line is run, the original XLSX file is removed. So please be careful this.
    }
  }
}

注意:

  • 如果XLSX文件数量很大,则执行时间可能超过6分钟。
  • 关于// Drive.Files.remove(ID);,当您运行此脚本时,请小心。因为原始的XLSX文件在运行脚本时被完全删除。所以我对此发表了评论。首先,请使用示例文件测试脚本。

参考文献: