Я не смог протестировать ваш код, но, думаю, я знаю, где ваша проблема.
Вы сохраняете rowData
как массив из одного слоя, из которого вы изменяете только значения слотов 0 и 1. Вместо этого я бы предложил хранить данные как массив из двух слоев, где каждая ячейка содержит свой собственный массив со значениями для столбцов. Вот пример кода для использования в качестве ссылки:
var rowData = [[],[]];
for (var param in e.parameter) {
Logger.log('In for loop, param=' + param);
var value = stripQuotes(e.parameter[param]);
Logger.log(param + ':' + e.parameter[param]);
switch (param) {
case 'v': //Parameter
rowData[1].push(value); //Value in column B
result = 'Written on column B';
break;
case 't':
rowData[0].push(value); // Value in Column A
result='Written on column A';
break;
default:
result = "unsupported parameter";
}
}
Я прошу прощения, что не могу четко понять, как вы хотите отображать данные, но вот решение, если вы хотите отобразить каждый список значений в одной ячейке:
//to write a new row
sheet.getRange(newRow,1,1,rowData.length).setValues(makeDisplay(rowData));
function makeDisplay(data){
var newDisp=[[]];
for(var i=0;i<data.length;i++){
var arrToStr="";
for(var j=0;j<data[i].length;j++){
arrToStr+=data[i][j]+"\n";
}
newDisp[0].push(arrToStr);
}
Logger.log(newDisp);
return newDisp;
}
Этот код определенно можно оптимизировать, но я надеюсь, что я дал вам представление о том, как вы можете добиться успеха в своей задаче.