java - 怎么用POI Excel 读取合并单元格的值?
PHP中文网
PHP中文网 2017-04-17 14:54:52
0
1
549


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

PHP中文网
PHP中文网

认证高级PHP讲师

reply all(1)
PHPzhong

POI 3.12

Dependent packages:

Code:

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();
}

}
Output:

第[0]个合并区域:foo
第[1]个合并区域:bar
foo
bar

Used test.xlsx:

To put it bluntly, the merged area is indexed by the first column and first row. If you know which number your merged area is in the sheet, you don’t need to traverse, just adjust sheet.getMergedRegion() directly.

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!