Good day.

google script spreadsheet

I try to create a matrix, if the data array is small, then everything works fine, of course, if it exceeds 800 rows and more I rest on the error "The maximum allowed execution time has been exceeded". Not effectively creating a matrix:

var s = SpreadsheetApp.getActiveSheet(); //ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ°ΠΊΠΎΠΉ лист ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ var toAddArray = []; //создаСм пустой массив Π±ΡƒΠ΄Π΅ΠΌ Π² Π½Π΅Π³ΠΎ ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ сСрийники for (i = 1; i <= s.getLastRow()+1; ++i){ //Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ вСсь столбик с значСниями, ΡˆΠ°ΠΏΠΊΡƒ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌ var numbr = s.getRange(i,4); //опрСдСляСм ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ячСйку ΠΊΠ°ΠΊ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ (интСрСсная 4 ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°) var Valus = numbr.getValues().toString(); //ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйки //ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅ΠΌ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ маскС var newznach = Valus.replace(/\-/g, "").replace(/[0-9][0-9][0-9][0-9][0-9][a-zA-ZΠ°-яА-Π―][a-zA-ZΠ°-яА-Π―]/g, "").replace(/[a-zA-ZΠ°-яА-Π―][a-zA-ZΠ°-яА-Π―]/g, ""); toAddArray.push([i.toFixed(0),Valus,newznach]); //записываСм Π΄Π°Π½Π½Ρ‹Π΅ Π² массив 0- Π½ΠΎΠΌΠ΅Ρ€ строки, 1- исходныСданныС, 2- "ΠΎΡ‡ΠΈΡ‰Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅" } 

As a result, the output has a matrix:

 { Π½ΠΎΠΌΠ΅Ρ€ строки, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ исходноС, ΠΏΠΎΡ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅Ρ€ строки, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ исходноС, ΠΏΠΎΡ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅Ρ€ строки, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ исходноС, ΠΏΠΎΡ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ... } 

Is it possible to somehow get the same array without busting?

  • getRange setRange in cycles is a sin. - oshliaer

1 answer 1

 var s = SpreadsheetApp.getActiveSheet(); var data = s.getRange(1,4, s.getLastRow()).getValues(); var toAddArray = data.map(function(row, i) { var Valus = row[0].toString(); var newznach = Valus. replace(/\-/g, ""). replace(/[0-9][0-9][0-9][0-9][0-9][a-zA-Zа-яА-Я][a-zA-Zа-яА-Я]/g, ""). replace(/[a-zA-Zа-яА-Я][a-zA-Zа-яА-Я]/g, ""); return [i.toFixed(0), Valus, newznach]; });