Проще разделить все значения, а не только "|".Во-первых, используйте функцию split (), как вы сказали, но вот так:
var values = spreadsheet.getRange(2, 5, sheet1.getLastRow()).getValue();
var cellTosplit = values.split(/[\s| ]+/); //here we separate by spaces and by |
Поскольку вы хотите снова записать их на лист, можно сохранить ячейки в двумерном массиве:
var array2d = [[],[]];
var pos = 0; //position of the cells array
for (var y = 0; y < rows; y++) {
array2d[y] = [];
for (var x = 0; x <= columns; x++) {
array2d[y][x] = cellsTosplit[pos]; //Or you can use this loop to directly write the values in the range you want instead, instead of using the 2D array
pos++;
}
}
Теперь вы можете написать array2d[row][column]
в нужных клетках.Как я уже сказал, вы можете сделать еще один цикл foor для итерации по Range и использовать setValues(array2d[y][x])
, или использовать тот же цикл вместо 2D-массива.