【问题标题】:Google Script giving an "Unexpected Error" with no other information [duplicate]谷歌脚本给出“意外错误”,没有其他信息[重复]
【发布时间】: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


【解决方案1】:

我也一样。 我发现该错误仅在文件扩展名为“.csv”时发生。 如果您更改“.txt”中的扩展名,它可以工作。

【讨论】:

    【解决方案2】:

    这似乎是一个错误。

    截至 3 天前(12 月 7 日),我也遇到了 UrlFetchApp 和一个在夜间运行以获取一些每日股票信息的脚本的问题。该 URL 通过 CSV 格式获取信息,就像它应该通过 API 一样,并且确认可以使用 Google 表格中的 importHTML 手动工作。还发布了here。这是一个全新的问题,因为没有任何变化,所以不知从何而来。几个月来它一直像冠军一样工作。 Google 做了点什么,但是什么?

    更新:我们并不孤单。这是谷歌的问题。希望我知道它什么时候会得到解决,因为这伤害了我和无数其他人:

    任何受此问题影响的人,请考虑单击左上角的星号,以帮助确定优先级并进行跟踪。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-24
      • 1970-01-01
      • 2020-04-25
      • 1970-01-01
      • 2017-11-05
      • 1970-01-01
      • 2014-08-27
      • 2019-05-06
      相关资源
      最近更新 更多