美文网首页
java excel读取

java excel读取

作者: 梦凝天 | 来源:发表于2019-05-08 15:09 被阅读0次
  1. java读写excel 需要引入一下jar包

    compile group: 'org.apache.poi', name: 'poi-ooxml', version: '4.0.1'
    compile group: 'org.apache.poi', name: 'poi', version: '4.0.1'
    
  2. 读取excel表格

     Workbook workbook= WorkbookFactory.create(new FileInputStream("C:\\Users\\Administrator\\Desktop\\新建 XLSX 工作表.xlsx"));
        for(int i=0;i<workbook.getNumberOfSheets();i++){ 
            //getNumberOfSheets()获取sheet的数量
            Sheet hssfSheet=workbook.getSheetAt(i);
            if(hssfSheet.getPhysicalNumberOfRows()==0){
                //getPhysicalNumberOfRows获取有效的行总数空行不算
                continue;
            }
            Row headRow=hssfSheet.getRow(hssfSheet.getFirstRowNum());
            //表头必填所有数据以表头为准getFirstRowNum()获取有数据的行号有可能数据从第2行开始
            for(int row=hssfSheet.getFirstRowNum();row<=hssfSheet.getLastRowNum();row++){
                // getLastRowNum为最后一行的下标 
                Row rowData=hssfSheet.getRow(row);
                if(rowData!=null) {
                    if(rowData.getPhysicalNumberOfCells()==0){
                        continue;
                         }
                    for (int cell = headRow.getFirstCellNum(); cell < headRow.getLastCellNum(); cell++) {
                        //以表头的列数为准,超出表头的数据忽略,具体表具体分析这里采用标准 getLastCellNum 最后该行该列的下标+1
                        Cell cellData = rowData.getCell(cell);
                        if (cellData == null) {
                            //这里以表头的的下标来取值有可能 该行该列没有值
                            continue;
                        }
                        CellType cellType=cellData.getCellType();
                        if(cellType.compareTo(CellType.NUMERIC)==0){
                            if(HSSFDateUtil.isCellDateFormatted(cellData)){
                                //判断是否是时间
                                System.out.print(cellData.getDateCellValue() + " "); 
                            }else{
                                double doubleValue=cellData.getNumericCellValue();
                                long longValue=(long)doubleValue;
                                if(longValue==doubleValue){
                                    System.out.print(longValue + " ");  
                                    //去除后面小数点0
                                }else{
                                    System.out.print(doubleValue);
                                }
                            }
    
                        }else if(cellType.compareTo(CellType.STRING)==0){
                            System.out.print(cellData.getStringCellValue() + " ");  
                        }else if(cellType.compareTo(CellType.BOOLEAN)==0){
                            System.out.print(cellData.getBooleanCellValue());
                        }else if(cellType.compareTo(CellType.FORMULA)==0){
                        }else {
    
                        }
    
    
    
                    }
                    System.out.println("");
    
                }
      
            }
    
    excel源文件 执行结果

相关文章

网友评论

      本文标题:java excel读取

      本文链接:https://www.haomeiwen.com/subject/ddomoqtx.html