如何获得合并单元格的数据在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; }