Как анализировать данные API в Google sheets

#javascript #api #google-apps-script #google-sheets

#javascript #API #google-apps-script #google-sheets

Вопрос:

У меня есть ответ API, который я пытаюсь поместить в свою электронную таблицу.

Мне удалось выяснить, как вызвать его, используя следующий код, но все это переходит в первую ячейку. Как мне сделать так, чтобы каждое значение переходило в другую ячейку?

 function callCandles() {
  var response = UrlFetchApp.fetch("https://api-pub.bitfinex.com/v2/candles/trade:1D:tBTCUSD/hist?limit=1000amp;start=1577841154000amp;end=1606785154000amp;sort=-1");
  Logger.log(response.getContentText());

  var fact = response.getContentText();
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.getRange(1,1).setValue([fact])

}
 

Ответ №1:

Это правильный способ установки значений в таблице. Избегайте использования for циклов с appendRow . Это может быть чрезвычайно медленно для относительно небольшого объема данных.

Предлагаемое решение:

 function myFunction() {
 var response = UrlFetchApp.fetch("https://api-pub.bitfinex.com/v2/candles/trade:1D:tBTCUSD/hist?limit=1000amp;start=1577841154000amp;end=1606785154000amp;sort=-1");
 var fact = JSON.parse(response.getContentText());
 var sheet = SpreadsheetApp.getActiveSheet();
 sheet.getRange(sheet.getLastRow() 1,1,fact.length,fact[0].length).setValues(fact);
}
 

Ответ №2:

Попробуйте что-то вроде этого,

  var response = UrlFetchApp.fetch("https://api-pub.bitfinex.com/v2/candles/trade:1D:tBTCUSD/hist?limit=1000amp;start=1577841154000amp;end=1606785154000amp;sort=-1");
 Logger.log(response.getContentText());

 var fact = JSON.parse(response.getContentText());
 var sheet = SpreadsheetApp.getActiveSheet();
 fact.forEach(row => {
   sheet.appendRow(row);
 });
 

Надеюсь, у вас есть какая-то идея.