Объединить смежные 2D точки / диапазоны - PullRequest
0 голосов
/ 04 июня 2018

Я использую Ячейки Aspose для Java .

Я работаю с электронной таблицей Excel.Я хотел бы перебрать каждую ячейку, и если две ячейки касаются одного идентичного стиля и имеют общий идентификатор, объедините их в отдельный диапазон для последующей обработки.По мере итерации большего числа ячеек существующие диапазоны могут увеличиваться.

Диапазон состоит из свойств startRow, endRow, startCol и endCol.Если все четыре свойства равны, он представляет одну ячейку.

Например, я бы ожидал, что {(1,1),(1,1)} и {(2,2),(1,1)} объединятся в {(1,2),(1,1)}.Между тем {(1,1),(1,1)} и {(2,2),(2,2)} не будут объединяться, потому что они диагональные, а не смежные.

Я думаю, я мог бы использовать для этого вариацию дерева интервалов , но я быадаптировать его для 2D-интервалов.Однако в этом случае мне все равно, если два диапазона перекрываются;если два диапазона перекрываются, это перекрывающиеся прямоугольники, и в этом случае их объединение ничего не изменит для минимизации количества общих диапазонов.

Вот грубое представление о входе / выходе, которое я ожидаю .

Мое лучшее предположение заключается в том, что мне придется выполнять итерации из каждой ячейки и сравнивать идентификаторы стилей.Перебираясь от текущей ячейки вверх и вниз, проверяйте остальные ячейки в этом диапазоне на тот же идентификатор и создавайте новые диапазоны на основе этого.

Мысли?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...