微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

运行脚本时出错 - “文档 <Doc ID. 丢失可能它已被删除,或者您可能没有读取权限?”

如何解决运行脚本时出错 - “文档 <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();

参考文献:

Trash

Empty Trash

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。