在ChatGPT的帮助下,我创建了这个Google Sheets脚本,帮助我从链接在第一列的docx文件中检测一些信息。
它工作了几个月,但是,几周前它突然停止工作,给我这个错误
异常:文档丢失(可能被删除,或者您没有读访问权限?)
我有访问权限,文档没有被删除。但它仍然不工作。
你有什么办法解决这个问题吗?
function FineFiller() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange("A2:A");
var links = range.getValues();
for (var i = 0; i < links.length; i++) {
var doc = DocumentApp.openByUrl(links[i][0]);
var text = doc.getBody().getText();
var verbaleNum = text.substring(text.indexOf("Verbale n°: ") + 12, text.indexOf("Verbale n°: ") + 30);
sheet.getRange(i + 2, 2).setValue(verbaleNum);
var giorno = text.substring(text.indexOf("Il giorno ") + 10, text.indexOf("Il giorno ") + 20);
sheet.getRange(i + 2, 3).setValue(giorno);
var ore = text.substring(text.indexOf("alle ore ") + 9, text.indexOf("alle ore ") + 14);
sheet.getRange(i + 2, 4).setValue(ore);
var targa = text.substring(text.indexOf("targa ") + 6, text.indexOf("targa ") + 12);
sheet.getRange(i + 2, 5).setValue(targa);
var totale = text.substring(text.indexOf("per un totale di euro ") + 22, text.indexOf("per un totale di euro ") + 27);
sheet.getRange(i + 2, 6).setValue(totale);
}
}
我试着检查是否与访问文件有关的问题,但它不是。
编辑:我添加这个屏幕截图只是为了在错误开始阻止我的脚本工作之前和之后给出一些脚本结果的图形视图。作为公司的电子表格,我不能分享它,有些数据是隐藏的。
截图我终于找到了解决方案,和往常一样,它很简单。我不知道为什么(可能是因为第一个文件已经自动从bin中删除),但经过测试,我发现它是从第一行检测,而不是检查列A的第一个单元格,它在右边有一个空白的b到f范围。
所以我解决了实现这段代码:
function FineFiller() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange("A2:F");
var data = range.getValues();
for (var i = 0; i < data.length; i++) {
var link = data[i][0];
var bValue = data[i][1];
var cValue = data[i][2];
var dValue = data[i][3];
var eValue = data[i][4];
var fValue = data[i][5];
if (bValue === "" && cValue === "" && dValue === "" && eValue === "" && fValue === "") {
var doc = DocumentApp.openByUrl(link);
var text = doc.getBody().getText();
var verbaleNum = text.substring(text.indexOf("Verbale n°: ") + 12, text.indexOf("Verbale n°: ") + 30);
sheet.getRange(i + 2, 2).setValue(verbaleNum);
var giorno = text.substring(text.indexOf("Il giorno ") + 10, text.indexOf("Il giorno ") + 20);
sheet.getRange(i + 2, 3).setValue(giorno);
var ore = text.substring(text.indexOf("alle ore ") + 9, text.indexOf("alle ore ") + 14);
sheet.getRange(i + 2, 4).setValue(ore);
var targa = text.substring(text.indexOf("targa ") + 6, text.indexOf("targa ") + 12);
sheet.getRange(i + 2, 5).setValue(targa);
var totale = text.substring(text.indexOf("per un totale di euro ") + 22, text.indexOf("per un totale di euro ") + 27);
sheet.getRange(i + 2, 6).setValue(totale);
}
}
}