读取execl 2003 2007

这是转自csdn

帅杰 de blog

1.引poi的jar包

  csdn有免费资源

2.代码

package com.shuaijie;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ReadExcel{   //poi读取excel数据
       
     public static void read(String fileName,boolean flag) throws Exception {  
         Workbook wb = null;  
         if(flag){//2003  
             File f = new File("D:/XXX.xls");  
               
             FileInputStream is = new FileInputStream(f);  
             POIFSFileSystem fs = new POIFSFileSystem(is);     
             wb = new HSSFWorkbook(fs);  
             is.close();  
         }else{//2007  
             wb = new XSSFWorkbook("D:/XXX.xlsx");  
         }  
         read(wb);  
     }  
       
      
     public static void read(InputStream is,boolean flag) throws Exception {  
         Workbook wb = null;  
           
         if(flag){//2003  
             wb = new HSSFWorkbook(is);  
         }else{//2007  
             wb = new XSSFWorkbook(is);  
         }  
           
         read(wb);  
     }  
       
      
     public static void read(Workbook wb) throws Exception {  
         try {  
               
             for (int k = 0; k < wb.getNumberOfSheets(); k++) {  
  
                 Sheet sheet = wb.getSheetAt(k);  
                 int rows = sheet.getPhysicalNumberOfRows();  
  
                 for (int r = 0; r < rows; r++) {  
                     // 定义 row  
                     Row row = sheet.getRow(r);  
                     if (row != null) {  
                         int cells = row.getPhysicalNumberOfCells();  
  
                         for (short c = 0; c < cells; c++) {  
                             Cell cell = row.getCell(c);  
                             if (cell != null) {  
                                 String value = null;  
  
                                 switch (cell.getCellType()) {  
  
                                 case Cell.CELL_TYPE_FORMULA:  
                                     value = "FORMULA value=" + cell.getCellFormula();  
                                    break;  
  
                                 case Cell.CELL_TYPE_NUMERIC:  
                                     if(HSSFDateUtil.isCellDateFormatted(cell)){  
                                         value = "DATE value=" 
                                             + cell.getDateCellValue();  
                                     }else{  
                                         value = "NUMERIC value=" 
                                                 + cell.getNumericCellValue();  
                                     }  
                                       
                                     break;  
  
                                 case Cell.CELL_TYPE_STRING:  
                                     value = "STRING value=" 
                                             + cell.getStringCellValue();  
                                     break;  
                                       
                                 case Cell.CELL_TYPE_BOOLEAN:  
                                     value = "BOOLEAN value=" 
                                             + cell.getBooleanCellValue();  
                                       
                                      
                                     cell.getDateCellValue();  
                                       
                                     break;  
 
                                 default:  
                                 }  
                                  
                                 System.out.println(value);  
  
                             }  
                         }  
                     }  
                 }  
             }  
         } catch (Exception e) {  
  
             e.printStackTrace();  
         }  
  
    }  
  
      
     public static void main(String[] args) throws Exception {  
        
  
         File f = new File("D:/XXX.xlsx");  
           
         FileInputStream is = new FileInputStream(f);  
           
         System.out.println(f.getName());  
           
         read(is,false);  
           
          
    }  
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值