• EPayments перестали выпускать карты? Альтернативы для фриланса?

    @hoff7
    payoneer - отлично работают, никаких нареканий.
    Ответ написан
    Комментировать
  • Как сделать вложенный цикл в google spreadsheet?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    Google Products Expert
    Ни при каких обстоятельствах не дразните систему setValue(), да еще и во вложенном цикле. Запись происходит не на ваш ПК, а на сервер. Кому понравится, когда его так дергают?

    Чтобы работало даже с "черновиками", т.е. до 50 000 строк на лист, сначала берите ВСЕ данные, потом формируйте ГОТОВЫЙ массив, потом делайте setValue().

    Примерно так:
    function writeData(){
      //Не факт, что поможет, но вдруг
      SpreadsheetApp.flush();
      
      //Далее как у всех
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      
      var resultSheet = ss.getSheetByName("Result");
      var agentsSheet = ss.getSheetByName("Buyers");
      var productsSheet = ss.getSheetByName("Products");
      
      var aV = agentsSheet.getDataRange().getValues();
      var pV = productsSheet.getDataRange().getValues();
      
      //срезать шапку
      aV.shift();
      //  pV.shift();
      
      var res = [];
      
      for(var i = 0; i< aV.length; i++)
      {
        res.push([].concat([aV[i][0]], pV[0]));    
        for(var j = 1; j < pV.length; j++){      
          res.push([].concat([''], pV[j]));      
        }
      }
      
      res = res.slice(0, 50000);
      resultSheet.getDataRange().clear(); 
      resultSheet.getRange(1, 1, res.length, res[0].length).setValues(res);
    }
    Ответ написан
    1 комментарий