如何在Java中给定单元格索引的情况下获取合并单元格的数据?

问题描述 投票:0回答:3

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

因此,我试图知道一个单元格是否为合并单元格,如果它是一个合并单元格,我将尝试获取合并单元格的第一行值和第一冒号值,如果它不是一个合并单元格,那么我将直接获取值的数据

like

String var = String.valueOf(sheet.getRow(Row).getCell(Cell));
java excel merge apache-poi import-from-excel
3个回答
4
投票

您需要的两种关键方法:

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,如果不读,请读取区域的第一行和第一列,以了解包含感兴趣单元格的区域的左上角单元格


3
投票

您可以使用Sheet.getMergedRegions()确定合并单元格的所有范围。然后,您可以在返回的范围上使用CellRangeAddress.isInRange(row,column)来检查所讨论的单元格是否为合并的单元格。


0
投票

这是我的代码(Kotlin),它考虑到如何合并单元格,如何以字符串形式获取Excel单元格数据。我使用此代码将excel数据加载到数据库中。

© www.soinside.com 2019 - 2024. All rights reserved.