Я хочу получить A1Notation прямоугольников в электронной таблице. Образец прямоугольника на таблице ниже изображения.
Я хочу получить A1Notation ячеек со значением "1". Я не хочу получать "B2, C2, D2, B3, C3, D3, B4, C4, D4". Я хочу получить "B2: D4". Мой опробованный скрипт -
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var result = [];
for (var i = 0; i < data.length; i++){
for (var j = 0; j < data[i].length; j++){
if (data[i][j] == 1) {
var range = sheet.getRange(i + 1, j + 1).getA1Notation();
result.push(range);
}
}
}
Logger.log(result);
Этот скрипт возвращает «B2, C2, D2, B3, C3, D3, B4, C4, D4». sheet.getDataRange().getA1Notation()
- это «A1: D4». Положения ячеек «1» не всегда одинаковы. Мой вопрос
- Когда положения ячеек "1" образуют область прямоугольника, есть ли способы получить область прямоугольника как A1Notation?
- В примере я хочу получить "B2: D4" из электронной таблицы или из "B2, C2, D2, B3, C3, D3, B4, C4, D4".
Я проверил Головоломка: Найти самый большой прямоугольник (проблема максимального прямоугольника) и ссылки. Но я не могу понять, как применить это к моему сценарию. Большое вам спасибо за ваше время.
Редактировать
Это образцы. Я получаю области в порядке размера.
A B C D E
1 0 0 0 0 0
2 0 1 1 1 0
3 0 1 1 1 0
4 0 1 1 1 0
5 0 0 0 0 0
Мне нужен "B2: D4".
A B C D E
1 1 1 1 0 0
2 0 1 1 1 0
3 0 1 1 1 0
4 0 1 1 1 0
5 0 0 0 0 0
Мне нужны "B2: D4" и "A1: C1".
A B C D E
1 0 1 1 1 1
2 0 1 1 1 1
3 0 0 0 1 1
4 0 0 0 0 1
5 0 0 0 0 1
Мне нужны "B1: E2", "E3: E5", "D3: D3".