Я застрял, простой, но страшный для l oop - мой заклятый враг, и я мог бы помочь. У меня есть лист Google, который в настоящее время имеет 3 строки (не включая заголовки) и 8 столбцов. количество строк будет расти динамически, так как пользователи вводят данные через веб-приложение. Мне нужно взять данные, собранные в этом листе, и использовать их для направления электронной почты определенной службе в нашей организации.
Мне не нужны все 8 столбцов данных, на самом деле мне нужны только 6. То, с чем я борюсь, это итерация по всем столбцам и строкам. Я пробовал простой для l oop, вложенный для l oop и a для каждой функции, ни одна из которых не дает ожидаемого результата: (
Мой самый последний код приведен ниже:
function serviceSelector() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Response');
var row = sheet.getLastRow();
var range = sheet.getDataRange();
var data = range.getValues();
var holderArray = [];
for(i = 0; i < data.length; i++){
holderArray.push(
data[1][0],
data[1][1],
data[1][2],
data[1][4],
data[1][5],
data[1][6]);
}
Logger.log(holderArray);
// switch(holderArray[1]){
// case 'Volunteering':
// MailApp.sendEmail('andypaulstevens@gmail.com', 'Message ID# ' +holderArray[2], 'You have receive the following message regarding Volunteering: \n\n'+holderArray[3]);
// break;
// case 'Home Help Service':
// MailApp.sendEmail('andypaulstevens@gmail.com', 'Message ID# ' +holderArray[2], 'You have receive the following message regarding the Home Help Service: \n\n'+holderArray[3]);
// break;
// }
}
Я прокомментировал оператор switch, чтобы решить проблему с получением правильных данных.
Следуя предоставленной рекомендации GREAT, я обновил свой код следующим образом:
function serviceSelector() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Response');
var row = sheet.getLastRow();
var range = sheet.getRange(2,1, sheet.getLastRow() -1,8);
var data = range.getValues();
var holderArray = [];
for(i in data[0]){
for(j in data[i]){
holderArray.push(data[j])
}
}
Logger.log(holderArray);
Вывод журнала выглядит следующим образом:
[20-03-26 12: 35: 22: 136 GMT] [[Энди Стивенс, andys@.com, ср. 25 марта 2020 16:43: 38 GMT + 0000 (среднее время по Гринвичу), k87k4rp4, Служба справки на дому, Hello World, andy. s@.uk], [Энди, Стивенс, andys@.com, ср. 25 марта 2020 16:44:40 GMT + 0000 (среднее по Гринвичу) Время), k87k63ae, Служба справки на дому, Hello World, andy. s@.uk], [Энди, Стивенс, andys@.com, ср. 25 марта 2020 16:46:38 GMT + 0000 (среднее время по Гринвичу), k87k8mmo, справка на дому Сервис, Привет Joolz, Просто отправив быстрое электронное письмо, чтобы показать вам, как будет работать веб-форма. Я получаю с этим, просто нужны адреса электронной почты и выяснить, как его вызвать, когда мы получим ответ. Кроме этого, он почти завершен :), andy. s@.uk], null, null, null, null, null, [Andy, Stevens, andys@.com, ср. 25 марта 2020 16:43:38 GMT + 0000 (среднее по Гринвичу) Время), k87k4rp4, Служба справки на дому, Hello World, andy. s@.uk], [Энди, Стивенс, andys@.com, ср. 25 марта 2020 16:44:40 GMT + 0000 (среднее время по Гринвичу), k87k63ae, справка на дому Служба, Hello World, andy. s@.uk], [Энди, Стивенс, andys@.com, ср. 25 марта 2020 16:46:38 GMT + 0000 (среднее время по Гринвичу), k87k8mmo, Служба справки на дому, Привет, Джолз, Просто отправка быстрое электронное письмо, чтобы показать вам, как будет работать веб-форма. Я получаю там с этим, просто нужны адреса электронной почты и выяснить, как вызвать его, когда мы получим ответ. Кроме этого, он почти завершен :), andy. s@.uk], null, null, null, null, null, [Andy, Stevens, andys@.com, ср. 25 марта 2020 16:43:38 GMT + 0000 (среднее по Гринвичу) Время), k87k4rp4, Служба справки на дому, Hello World, andy. s@.uk], [Энди, Стивенс, andys@.com, ср. 25 марта 2020 16:44:40 GMT + 0000 (среднее время по Гринвичу), k87k63ae, справка на дому Служба, Hello World, andy. s@org.uk], [Andy, S, andys@.com, ср. 25 марта 2020 16:46:38 GMT + 0000 (среднее время по Гринвичу), k87k8mmo, Служба справки на дому, Hi Joolz, Просто отправка быстрое электронное письмо, чтобы показать вам, как будет работать веб-форма. Я получаю там с этим, просто нужны адреса электронной почты и выяснить, как вызвать его, когда мы получим ответ. Кроме этого он почти завершен :), andy. s@.uk], null, null, null, null, null]
Полный код, добавленный ниже, включая инструкцию switch, где я ошибаюсь?
function serviceSelector() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Response');
var row = sheet.getLastRow();
var range = sheet.getRange(2,1, sheet.getLastRow() -1,8);
var data = range.getValues();
var cols = range.getNumColumns();
var rows = range.getNumRows();
var holderArray = [];
for (var i = 0; i < rows; i++){
for (var j = 0; j < cols; j++) {
holderArray.push(data[i][j]);
}
}
Logger.log(holderArray);
Logger.log(holderArray);
switch(holderArray[5]){
case 'Volunteering':
MailApp.sendEmail(holderArray[2], 'Message ID# ' +holderArray[4], 'You have receive the following message regarding Volunteering: \n\n'+holderArray [6]);
break;
case 'Home Help Service':
MailApp.sendEmail(holderArray[2], 'Message ID# ' +holderArray[4], 'You have receive the following message regarding the Home Help Service: \n\n'+holderArray [6]);
break;
}
}