如何解决运行脚本时出错 - “文档 <Doc ID. 丢失可能它已被删除,或者您可能没有读取权限?”
我正在运行一个脚本,将每周计划的 excel 文件附加到电子邮件中,然后将其发布到 Google 表格中。目前我正在手动触发它。该代码似乎工作正常并根据记录器语句完成,但每次都会给出此错误代码。
Document <Sheet ID> is missing (perhaps it was deleted,or maybe you don't have read access?)
引用的工作表 ID 不是我正在处理的工作表,因此我认为它是已创建和删除的临时文档。我不确定如何摆脱这个错误。同样,尽管出现错误,代码似乎仍按预期工作。
function getExcelFile()
{
var thread = GmailApp.getUserLabelByName("Guelph/Weekly Schedules").getThreads(0,1);
//var thread = GmailApp.getUserLabelByName(‘Reconciliation’).getThreads(0,1);
var messages = thread[0].getMessages();
var len = messages.length;
var message = messages[len-1] //get last message
var attachments = message.getAttachments(); // Get attachment of first message
var xlsxBlob = attachments[0]; // Is supposes that attachments[0] is the blob of xlsx file.
var convertedSpreadsheetId = Drive.Files.insert({mimeType: MimeType.GOOGLE_SHEETS},xlsxBlob).id;
var sheet = SpreadsheetApp.openById(convertedSpreadsheetId).getSheets()[0]; // There is the data in 1st tab.
var data = sheet.getDatarange().getValues();
var sheet = SpreadsheetApp.openById("1e_pepsold-SHbndxcQ0pvdN9AGiZ31O5XcLFU8YfcwE").getSheetByName("Current");
//var sheet = SpreadsheetApp.openById("some id").getSheetByName(‘Data’);
sheet.clearContents();
var range = sheet.getRange(1,1,data.length,data[0].length);
range.setValues(data);
Drive.Files.remove(convertedSpreadsheetId); // Remove the converted file.
Logger.log(new Date().getTime() - start); // Outputs time taken to run function
}
解决方法
这看起来像是一个反复出现的问题;这里已经有一个线程:Drive.Files.remove(fileId) remove the item but return an error message
我最好的猜测是当脚本删除文件时,它仍然使用同一个文件,因此脚本返回一条错误消息,指出最近删除的文件丢失。
我知道这可能不是最好的解决方法,但您可以将文件移至废纸篓而不是立即删除:
Drive.Files.trash(convertedSpreadsheetId);
然后您可以手动清空垃圾箱或在 GAS 中使用:
Drive.Files.emptyTrash();
参考文献:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。