Проблема:
Вы используете getValue , которая будет возвращать только верхнюю левую ячейку в указанном диапазоне (то есть C15
) ,
Решение:
Если вы хотите получить все адреса в диапазоне, вы должны вместо этого использовать getValues . Это вернет двумерный массив значений, который я бы посоветовал вам преобразовать в простой массив адресов. Затем вы можете перебирать каждый адрес в этом массиве, добавляя каждый массив к телу сообщения электронной почты с помощью concat () .
Это может быть что-то вроде следующего:
function sendMap2() {
var sheet = SpreadsheetApp.getActive().getSheetByName('Summary');
var values = sheet.getRange('C15:C17').getValues();
var addresses = [];
for (var i = 0; i < values.length; i++) {
addresses = addresses.concat(values[i]);
}
var body = "";
for (var j = 0; j < addresses.length; j++) {
var mapUrl = "https://www.google.com/maps/search/?api=1&query=";
var mapQuery = encodeURIComponent(addresses[j]);
body = body.concat('Map Link: ' + mapUrl + mapQuery + '\n');
}
GmailApp.sendEmail('your-email', 'Map', body);
}
ОБНОВЛЕНИЕ:
Если вы хотите указать несколько адресов в одном URL, вы можете использовать это вместо:
var mapUrl = "https://www.google.com/maps/dir/";
var body = 'Map Link: ' + mapUrl;
for (var j = 0; j < addresses.length; j++) {
var mapQuery = encodeURIComponent(addresses[j]);
body = body.concat(mapQuery + '/');
}
GmailApp.sendEmail('your-email', 'Map', body);
}
Ссылка: