开发者社区> 问答> 正文

怎么用POI Excel 读取合并单元格的值?

screenshot
如图,需要读取excel中的“9月份计划” 但是这里是合并的单元格,请问 怎么读取合格单元格的值,有什么好的思路么

展开
收起
蛮大人123 2016-02-22 11:12:41 6467 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪
    public class POITest {
    
    public static void main(String[] args) throws Exception {
        File inputFile = new File("d:\\test.xlsx");
        InputStream is = new FileInputStream(inputFile);
        Workbook wb = new XSSFWorkbook(is);
        Sheet sheet = wb.getSheetAt(0);
        
        // 遍历合并区域
        for (int i = 0; i < sheet.getNumMergedRegions(); i++) {
            CellRangeAddress region = sheet.getMergedRegion(i); // 
            int colIndex = region.getFirstColumn();             // 合并区域首列位置
            int rowNum = region.getFirstRow();                     // 合并区域首行位置
            System.out.println("第[" + i + "]个合并区域:" +  sheet.getRow(rowNum).getCell(colIndex).getStringCellValue());
        }
        
        // 直接调用,我知道合并单元格的位置:
        System.out.println(sheet.getRow(0).getCell(0).getStringCellValue());
        
        System.out.println(sheet.getRow(3).getCell(2).getStringCellValue());
        
        wb.close();
        is.close();
    }
    
    }

    输出:
    全选复制放进笔记
    第[0]个合并区域:foo
    第[1]个合并区域:bar
    foo
    bar
    用到的test.xlsx:
    screenshot
    说白了,合并区域通过首列和首行来索引,如果你知道你的合并区域是sheet中的第几个,就不用遍历,直接调sheet.getMergedRegion()就行了。

    2019-07-17 18:46:29
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关实验场景

更多