【发布时间】:2020-11-10 00:41:11
【问题描述】:
我目前正在从活动工作表生成 PDF 文件。有没有办法覆盖或替换谷歌驱动器中的文件而不将其放入垃圾箱?我有这个我在网上看到的代码。
if (files.hasNext()) {
files.next().setTrashed(true);
}
我是在正确使用代码还是有其他方法可以做到这一点?
我在下面的函数中使用了该代码。
function _exportBlob(blob, fileName) {
var timeZone = Session.getScriptTimeZone();
var date = Utilities.formatDate(new Date(), timeZone, "yyyy");
var ss = SpreadsheetApp.getActiveSpreadsheet();
var fileName = "FORM137 - " + ss.getRange("REPORT CARD!D12").getValue() + " - ARCS" + date;
var ssID = ss.getId();
var ssFile = DriveApp.getFileById(ssID);
blob = blob.setName(fileName)
var parentFolder = DriveApp.getFileById(ss.getId()).getParents().next();
var subFolder = parentFolder.getFoldersByName("CARDS").next();
var files = subFolder.getFilesByName(getFilename());
if (files.hasNext()) {
files.next().setTrashed(true);
}
var pdfFile = subFolder.createFile(blob);
if (pdfFile) {
const htmlOutput = HtmlService
.createHtmlOutput('<p>Click to open <a href="' + pdfFile.getUrl() + '" target="_blank">' + fileName + '</a></p>')
.setWidth(300)
.setHeight(80)
SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'Export Successful')
}
}
这里是 getFilename 函数:
function getFilename() {
var ss = SpreadsheetApp.getActive();
var filename = "FORM137 - " + ss.getRange("REPORT CARD!D12").getValue() + " - ARCS" + date;
return filename;
}
【问题讨论】:
-
我可以问你
getFilename()吗? -
@Tanaike 我已经发过了。
-
感谢您回复并添加更多信息。根据您的附加信息,我提出了一个修改点作为答案。你能确认一下吗?如果这不是您期望的方向,我深表歉意。
标签: google-apps-script google-sheets google-drive-api