Google Scripts: объединение нескольких функций и вывод в одну строку (ячейка + [1] [2], et c) - PullRequest
0 голосов
/ 21 февраля 2020

У меня возникли сложности со следующей формулой в Google Scripts. Чего я хотел бы добиться, это:

1 - получить номер из A1

2- из номера, иметь множественные возвраты

3 - установить эти возвраты в одной строке (A) как исходный номер, в соседних ячейках (A2, A3)

Как это выглядит сейчас:

function GETALLTWO(bid) {
  if (input.map) {     
    return input.map(GETALLTWO)
  } else {
    return input;
  }
  var api_str = "client_id=randomstringofnumbers&client_secret=anotherrandomstringofnumbers";
  var url= "https://api.untappd.com/v4/beer/info/" + bid + "?" + api_str;
  var response = UrlFetchApp.fetch(url);
  if (response.getResponseCode() == 200) {
    var respObj = JSON.parse(response.getContentText());
    var beer = respObj.response.beer;
    if (beer.bid == bid) {
      return beer.beer_name;
      return beer.rating_score;
      return beer.stats.total_user_count;
      return beer.rating_count;
      return beer.stats.monthly_count;
      return beer.created_at;
    }
  }
}

Из Code.gs я могу получить первый Return to work, но правильно ли я комбинирую разные функции? И как бы установить местоположение для возврата?

Надеюсь, кто-то может помочь, хотел бы узнать больше о сценариях.

// Редактировать для дальнейшего использования:

function getAll(bid) {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Overview')
  var row=sh.getActiveCell().getRow();
  var bid=sh.getRange(row,3).getValue();
  var api_str =     "client_id=randomstring&client_secret=randomstring";
  var url= "https://api.untappd.com/v4/beer/info/" + bid + "?" +     api_str;
  var response = UrlFetchApp.fetch(url);
  if (response.getResponseCode() == 200) {
    var respObj = JSON.parse(response.getContentText());
    var beer = respObj.response.beer;
    if (beer.bid == bid) {
      var rObj= {name:beer.beer_name,rating:beer.rating_score,totalcount:beer.stats.total_user_count,ratingcount:beer.rating_count,monthlycount:beer.stats.monthly_count,createddate:beer.created_at};
      values=[[rObj.name,rObj.ratingcount,rObj.rating,rObj.totalcount,rObj.monthlycount,rObj.createddate]];
      return values;
    }
  }
}

1 Ответ

1 голос
/ 21 февраля 2020

С помощью этой функции вам просто нужно навести курсор на строку, из которой вы хотите получить ставку. Он вернет данные в эту строку, начиная со столбца D

function getAllTwo() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Your Sheet Name')
  var row=sh.getActiveCell().getRow();
  var bid=sh.getRange(row,3).getValue();
  var api_str = "client_id=randomstringofnumbers&client_secret=anotherrandomstringofnumbers";
  var url= "https://api.untappd.com/v4/beer/info/" + bid + "?" + api_str;
  var response = UrlFetchApp.fetch(url);
  if (response.getResponseCode() == 200) {
    var respObj = JSON.parse(response.getContentText());
    var beer = respObj.response.beer;
    if (beer.bid == bid) {
      var rObj= {name:beer.beer_name,rating:beer.rating_score,totalcount:beer.stats.total_user_count,ratingcount:beer.rating_count,monthlycount:beer.stats.monthly_count,createdate:beer.created_at};
      values=[[rObj.name,rObj.ratingcount,rObj.rating,rObj.totalcount,rObj.monthlycount,rObj.createddate]];
      sh.getRange(row,4,values.length,values[0].length).setValues(values);
    }
  }
}
...