如何获得合并单元格的数据在java中给出单元格索引?

我有一个Excel文件,我正在使用apache-poi获取excel文件的数据,所以如果我读取任何单元格值,那么如何知道单元格是否合并单元格,并获取合并的单元格的值

所以我想知道天气一个单元格是否合并的单元格,如果它是一个合并单元格,我将尝试获取合并单元格的第一行和第一个冒号值的值,如果它不是合并的单元格,那么我将直接获取数据的价值

喜欢

String var = String.valueOf(sheet.getRow(Row).getCell(Cell)); 

你需要两个关键的方法:

  • Sheet.getMergedRegions()
  • CellRangeAddressBase.isInRange(行,列) (合并区域从此延伸)

你的代码只会是这样的:

 public CellRangeAddress getMergedRegionForCell(Cell c) { Sheet s = c.getRow().getSheet(); for (CellRangeAddress mergedRegion : s.getMergedRegions()) { if (mergedRegion.isInRange(c.getRowIndex(), c.getColumnIndex())) { // This region contains the cell in question return mergedRegion; } } // Not in any return null; } 

然后检查是否返回null ,如果不读取该区域的第一行和第一列,以知道包含您感兴趣的单元格的区域的左上angular单元格

您可以使用Sheet.getMergedRegions()来确定合并单元格的所有范围。 然后,您可以在返回的范围中使用CellRangeAddress.isInRange(行,列)来检查相关单元格是否为合并单元格。

 public boolean isMergedCell(int row, int column) { for (CellRangeAddress range : sheet.getMergedRegions()) { if (range.isInRange(row, column)) { return true; } } return false; }