Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 合并相邻的二维点/范围_Java_Algorithm_Aspose - Fatal编程技术网

Java 合并相邻的二维点/范围

Java 合并相邻的二维点/范围,java,algorithm,aspose,Java,Algorithm,Aspose,我正在使用 我在操作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)}不会合并,因为它们是对角的,而不

我正在使用

我在操作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)}
不会合并,因为它们是对角的,而不是相邻的

我想我可以使用an的一个变体来实现这一点,但我必须将其调整为2D间隔。然而,在这种情况下,我不在乎两个范围是否重叠;如果两个范围重叠,则它们是重叠的矩形,在这种情况下,组合它们对最小化总范围的数量没有任何作用

我最好的猜测是,我必须从每个单元格向外迭代并比较样式ID。当我在当前单元格上下移动时,检查该区域中的其他单元格是否具有相同的ID,并基于该ID创建新的区域


想法?

检查此问题:。您的问题是关于算法,而不是关于Aspose.Cells功能。我们担心,您将不得不编写自己的算法或从internet进行搜索。---注:我在Aspose担任开发人员宣传员