poi 3.8读取excel表格

本文介绍了一种使用Apache POI库读取Excel文件的方法,适用于Excel 2003/2007/2010等版本,通过实例演示了如何逐行逐列读取不同类型的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

读取excel表格是poi中一种常用的方式,一开始没有基础不会写。后来慢慢查了一些,然后给自己也总结一些,想着以后会用到的。

这次用poi是3.8的版本。

本方法在main方法里做个试验。数据是自己普通建的一个表

public static void main(String[] args) {  

try {

    File excelFile = new File("D:/Excel.xlsx");    //导入表
    SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");//日期格式化,方便后边判断
    FileInputStream is = new FileInputStream(excelFile); //文件流  
          Workbook workbook = WorkbookFactory.create(is); //这种方式 Excel 2003/2007/2010 都是可以处理的  
          int sheetCount = workbook.getNumberOfSheets();//获得所有的工作薄
            for (int s = 0; s < sheetCount; s++) {  
           Sheet sheet = workbook.getSheetAt(s);  //获得for循环里的每一个表
           int rowCount = sheet.getPhysicalNumberOfRows(); //获取总行数  
           //遍历每一行  
           for (int r = 0; r < rowCount; r++) {  
               Row row = sheet.getRow(r);  
               int cellCount = row.getPhysicalNumberOfCells(); //获取总列数  
               //遍历每一列  
               for (int c = 0; c < cellCount; c++) {  
                   Cell cell = row.getCell(c);  
                   int cellType = cell.getCellType();  
                   String cellValue = null;  
                   switch(cellType) {  
                       case Cell.CELL_TYPE_STRING: //文本  
                           cellValue = cell.getStringCellValue();  
                           break;  
                       case Cell.CELL_TYPE_NUMERIC: //数字、日期  
                           if(DateUtil.isCellDateFormatted(cell)) {  
                               cellValue = fmt.format(cell.getDateCellValue()); //日期型  
                           }  
                           else {  
                               cellValue = String.valueOf(cell.getNumericCellValue()); //数字  
                           }  
                           break;  
                       case Cell.CELL_TYPE_BOOLEAN: //布尔型  
                           cellValue = String.valueOf(cell.getBooleanCellValue());  
                           break;  
                       case Cell.CELL_TYPE_BLANK: //空白  
                           cellValue = cell.getStringCellValue();  
                           break;  
                       case Cell.CELL_TYPE_ERROR: //错误  
                           cellValue = "错误";  
                           break;  
                       case Cell.CELL_TYPE_FORMULA: //公式  
                           cellValue = "错误";  
                           break;  
                       default:  
                           cellValue = "错误";  
                   }  
                   System.out.print(cellValue + "    ");  
               }  
               System.out.println();  
           }  
       } 

}

}
             
                     
2017年2月20日项目用的是3.15稳定版本,所以很多旧版本的属性都用不了了,所以慢慢整理下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值