【发布时间】:2020-12-09 10:07:41
【问题描述】:
我有一个小的更新脚本,到目前为止,它一直在完美运行。它在 github 页面上抓取远程 CSV 并更新电子表格中的单元格。现在,当我运行它时,它只是说“意外错误”,然后是一个 csv 文件。它似乎在随机 CSV 文件上失败,而不是每次都失败。有谁知道是否有解决方案或什么问题?或者如何获取实际有用的信息来查找错误原因?使用调试器快速运行表明它在 UrlFetchApp 行失败,但我不确定。
function onOpen() {
SpreadsheetApp.getUi().createMenu('Refresh Enlir Data/Clear User Data')
.addItem('Refresh Enlir Data', 'refreshEnlirData')
.addItem('Clear User Data', 'clearUserData')
.addToUi();
}
function clearUserData() {
var sheet = SpreadsheetApp.getActive().getSheetByName('Raw User Data');
sheet.getRange('D1:I').clearContent();
sheet.getRange('K1:P').clearContent();
sheet.getRange('R:X').clearContent();
sheet.getRange('Z1:AC').clearContent();
sheet.getRange('AE1:AH').clearContent();
}
function refreshEnlirData() {
updateDatabase("https://raw.githubusercontent.com/BaconCatBug/BCBCSVStorage/master/SoulBreaks.csv", 'Enlir Data!B1:W')
updateDatabase("https://raw.githubusercontent.com/BaconCatBug/BCBCSVStorage/master/Commands.csv", 'Enlir Data!AM1:BE')
updateDatabase("https://raw.githubusercontent.com/BaconCatBug/BCBCSVStorage/master/Abilities.csv", 'Enlir Data!DU1:FM')
updateDatabase("https://raw.githubusercontent.com/BaconCatBug/BCBCSVStorage/master/Magicite.csv", 'Enlir Data!FY1:ID')
updateDatabase("https://raw.githubusercontent.com/BaconCatBug/BCBCSVStorage/master/LimitBreaks.csv", 'Enlir Data!IU1:JM')
}
function updateDatabase(fetchCSV, range) {
const spreadsheetId = SpreadsheetApp.getActive().getId();
var r = UrlFetchApp.fetch(fetchCSV);
var arr = csv2array(r.getContentText());
var request = {
'valueInputOption': 'USER_ENTERED',
'data': [{
'range': range,
'majorDimension': 'ROWS',
'values': arr}]
};
var response = Sheets.Spreadsheets.Values.batchUpdate(request, spreadsheetId);
}
function csv2array(data) {
var array = [];
var rows = data.split("\n");
for(var row in rows) {
rows[row] = rows[row].replace(/","/g, "@");
rows[row] = rows[row].replace(/"/g, "");
array.push(rows[row].split("@"));
}
return array;
}
【问题讨论】:
-
您是否真的设法检索到这些 CSV 文件之一?每次对我来说都失败了。由于之前可以正常工作,请问您最近对这些 CSV 进行过更改吗?
-
我在我编写的脚本上看到了这种错误,并且已经运行了很长时间没有错误我尝试调试它,但我没有任何成功,现在我没有两周没看到错误。所以我有点认为这是谷歌的问题,如果你等待一段时间,它可能会自行消失
标签: google-apps-script urlfetch