Я пытаюсь создать процесс, работающий через динамический диапазон в Google Sheet.Длина таблицы может варьироваться от 1 до 200. Моя программа должна иметь возможность работать с таблицей независимо от количества строк.
Я пробовал два разных подхода.Один из них очень статичен и требует от меня циклического перебора множества ненужных строк, чтобы проверить, не являются ли они пустыми.
А другой не слишком хорошо обрабатывает все длины таблиц.
Есть ли какие-либодругой подход, который я могу использовать, чтобы исправить это.Я читал о "getDataRanges".Но я не уверен, может ли это сработать в моей ситуации.
Есть идеи?
- Этот подход статичен.В этом случае это дает мне массив из 2 строк.Я рассмотрел использование этого и установив его, например, (2200,3,6).Для работы с любыми диапазонами, содержащими менее 200 строк.Затем посмотрите на каждый ряд, чтобы увидеть, пуст он или нет.Если он пуст, я ничего не могу поделать и пропустить.
var data = sheet.getRange(2,1,3,6).getValues();
Этот подход немного более динамичен.Так как он использует Ctrl + Shift + правая кнопка + кнопка вниз, чтобы создать диапазон всех существующих данных в таблице.Однако, это не работает, если есть только 1 строка, например.Так как он будет выбирать много и много строк при выборе вниз.
spreadsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.NEXT).activate();
spreadsheet.getRange('A2:V2').activate();
var currentCell = spreadsheet.getCurrentCell();
spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();
currentCell.activateAsCurrentCell();
var selection = SpreadsheetApp.getActiveSpreadsheet().getSelection();
var activeRange = selection.getActiveRange();
var range = '';
var sel = SpreadsheetApp.getActive().getSelection().getActiveRangeList().getRanges();
for(var i = 0; i < sel.length; i++){
range += sel[i].getA1Notation();
}