【问题标题】:Exporting a Google Sheet into an Excel using Google script使用 Google 脚本将 Google Sheet 导出到 Excel
【发布时间】:2018-07-04 15:53:50
【问题描述】:

我正在尝试自动将 Google 工作表备份到 Excel 中。

在尝试了 Stackoverflow 上随处可见的不同脚本后,我现在正在运行的脚本,但没有任何反应。

有什么想法吗?

代码如下:

function exportAsxlsx() {
  var spreadsheet   = SpreadsheetApp.getActiveSpreadsheet();
  var spreadsheetId = spreadsheet.getId()
  var file = DriveApp.getFileById(spreadsheetId)

  var url           = 'https://docs.google.com/spreadsheets/d/'+spreadsheetId+'/export?format=xlsx';
  var token         = ScriptApp.getOAuthToken();
  var response      = UrlFetchApp.fetch(url, {
    headers: {
      'Authorization': 'Bearer ' +  token
    }
  });

  var blobs   = response.getBlob();
  var folder = DriveApp.getFoldersByName('Exports');
  if(folder.hasNext()) {
    var existingPlan1 = DriveApp.getFilesByName('newfile.xlsx');
    if(existingPlan1.hasNext()){
      var existingPlan2 = existingPlan1.next();
      var existingPlanID = existingPlan2.getId();
      Drive.Files.remove(existingPlanID);
    }
  } else {
    folder = DriveApp.createFolder('BackUp');
  }
  folder = DriveApp.getFoldersByName('BackUp').next();
  var formattedDate = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd' 'HH:mm:ss");
  var name = SpreadsheetApp.getActiveSpreadsheet().getName() + " Copy " + formattedDate;
  folder.createFile(blobs).setName(name + '.xlsx')
}

【问题讨论】:

  • 能否提供I have is now running but nothing is happening.的详细信息?
  • 所以,我没有更多的错误,因为我在出口线上挣扎了一段时间。运行代码后,我没有创建任何文件夹或创建谷歌表的副本。
  • 所以问题似乎来自备份文件夹的创建。我添加了这一行以在已创建的文件夹中创建文件 var folder = DriveApp.getFolderById("ID of the folder");
  • 在您的情况下,没有错误,也没有创建文件和文件夹。我能理解你这样的情况。例如,当DriveApp.createFile(blobs) 紧跟在var blobs = response.getBlob(); 之后时,是否创建了文件?

标签: excel google-sheets-api


【解决方案1】:

所以,这是一个有效的脚本:

function exportAsxlsx() {
  var spreadsheet   = SpreadsheetApp.getActiveSpreadsheet();
  var spreadsheetId = spreadsheet.getId()
  var file = DriveApp.getFileById(spreadsheetId)

  var url           = 'https://docs.google.com/spreadsheets/d/'+spreadsheetId+'/export?format=xlsx';
  var token         = ScriptApp.getOAuthToken();
  var response      = UrlFetchApp.fetch(url, {
    headers: {
      'Authorization': 'Bearer ' +  token
    }
  });

  var blobs   = response.getBlob();
  var formattedDate = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd' 'HH:mm:ss");
  var name = SpreadsheetApp.getActiveSpreadsheet().getName() + " Copy " + formattedDate;
  var folder = DriveApp.getFolderById("your folder ID");
  folder.createFile(blobs).setName(name + '.xlsx');
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多