我正在从网站下载一个.zip文件,其中包含一个.txt文件。我想访问txt中的数据并将其写入电子表格。我可以直接访问它而不解压缩zip文件,也可以提取zip文件,将txt保存到Google Drive文件夹中,并在保存后访问它。
当我使用
我遵循了Utilities页面上的说明。我可以使他们的确切示例工作。我尝试在我的计算机上创建一个.zip文件,将其上传到Google Drive并尝试打开它,但不成功。显然,我错过了使用解压缩的一些细节。您能帮助我理解这个吗?
当我使用
Utilities.unzip()
时,我无法解压缩文件,通常会出现“无效参数”错误。在下面的代码中,else
之前的最后一部分包含解压缩命令。它成功地将文件保存到正确的Google文件夹中,但是我无法提取它。function myFunction() {
// define where to gather data from
var url = '<insert url here>';
var filename = "ReportUploadTesting05.zip";
var response = UrlFetchApp.fetch(url, {
// muteHttpExceptions: true,
// validateHttpsCertificates: false,
followRedirects: true // Default is true anyway.
});
// get spreadsheet for follow up info
var Sp = SpreadsheetApp.getActiveSpreadsheet();
if (response.getResponseCode() === 200) {
// get folder details of spreadsheet for saving future files
var folderURL = getParentFolder(Sp);
var folderID = getIdFromUrl(folderURL);
var folder = DriveApp.getFolderById(folderID);
// save zip file
var blob = response.getBlob();
var file = folder.createFile(blob);
file.setName(filename);
file.setDescription("Downloaded from " + url);
var fileID = file.getId();
Logger.log(fileID);
Logger.log(blob)
// extract zip (not working)
file.setContent('application/zip')
var fileUnzippedBlob = Utilities.unzip(file); // invalid argument error occurs here
var filename = 'unzipped file'
var fileUnzipped = folder.createFile(fileUnzippedBlob)
fileUnzipped.setName(filename)
}
else {
Logger.log(response.getResponseCode());
}
}
我遵循了Utilities页面上的说明。我可以使他们的确切示例工作。我尝试在我的计算机上创建一个.zip文件,将其上传到Google Drive并尝试打开它,但不成功。显然,我错过了使用解压缩的一些细节。您能帮助我理解这个吗?
unzip
expects Blob type, so you can try doUtilities.unzip(blob)
- Kosfile.setContent('application/zip')
并且完全不设置setContent,那么对我来说代码就可以正常工作。注意:我已经将一个压缩文件上传到Google Drive并进行了测试! - Jack BrowncreateFile
,直接将blob放入unzip
,但没有成功。 - rdipert