我正在使用Aspose Cells for Java。
我正在使用Excel电子表格。我想遍历每个单元格,如果两个单元格正在触摸并共享相同的样式ID,请将它们组合到单独的单个范围中以供稍后处理。随着更多单元格的迭代,现有范围可能会增长。
范围包含startRow
,endRow
,startCol
和endCol
属性。如果所有四个属性相等,则表示单个单元格。
例如,我希望{(1,1),(1,1)}
和{(2,2),(1,1)}
合并为{(1,2),(1,1)}
。同时{(1,1),(1,1)}
和{(2,2),(2,2)}
不会合并,因为它们是对角线,而不是相邻的。
我认为我可以使用interval tree的变体,但我必须根据2D间隔进行调整。但是,在这种情况下,我不在乎两个范围重叠;如果两个范围重叠,则它们是重叠的矩形,在这种情况下,组合它们对于最小化总范围的数量无效。
Here is a crudely drawn idea of the intput/output I expect
我最好的猜测是我必须从每个单元格向外迭代并比较样式ID。当我从当前单元格上下移动时,检查该范围内的其余单元格是否具有相同的ID,并根据该区域创建新的范围。
思想?