【发布时间】: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();之后时,是否创建了文件?