首页 > 编程语言 > 详细

JAVA使用POI读取EXCEL文件的简单model

时间:2016-03-27 12:31:27      阅读:483      评论:0      收藏:0      [点我收藏+]

一.JAVA使用POI读取EXCEL文件的简单model

1.所需要的jar

poi-3.7-20101029.jar
poi-examples-3.7-20101029.jar
poi-ooxml-3.7-20101029.jar
poi-ooxml-schemas-3.7-20101029.jar
poi-scratchpad-3.7-20101029.jar

poi-3.6.jar
poi-3.6-dom4j-1.6.1.jar
poi-3.6-geronimo-stax-api_1.0_spec-1.0.jar
poi-3.6-xmlbeans-2.3.0.jar
poi-3.6-ooxml-20091214.jar
poi-3.6-ooxml-schemas-20091214.jar 

技术分享
package poi;  
import java.io.FileInputStream;  
import java.io.IOException;  
import java.io.InputStream;  
import java.util.Iterator;  
import org.apache.poi.hssf.usermodel.HSSFCell;  
import org.apache.poi.hssf.usermodel.HSSFWorkbook;  
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 ReadExcel001 {  
    public static void main(String[] args) {  
        readXml("D:/test.xlsx");  
        System.out.println("-------------");  
        readXml("d:/test2.xls");  
    }  
    public static void readXml(String fileName){  
        boolean isE2007 = false;    //判断是否是excel2007格式  
        if(fileName.endsWith("xlsx"))  
            isE2007 = true;  
        try {  
            InputStream input = new FileInputStream(fileName);  //建立输入流  
            Workbook wb  = null;  
            //根据文件格式(2003或者2007)来初始化  
            if(isE2007)  
                wb = new XSSFWorkbook(input);  
            else  
                wb = new HSSFWorkbook(input);  
            Sheet sheet = wb.getSheetAt(0);     //获得第一个表单  
            Iterator<Row> rows = sheet.rowIterator(); //获得第一个表单的迭代器  
            while (rows.hasNext()) {  
                Row row = rows.next();  //获得行数据  
                System.out.println("Row #" + row.getRowNum());  //获得行号从0开始  
                Iterator<Cell> cells = row.cellIterator();    //获得第一行的迭代器  
                while (cells.hasNext()) {  
                    Cell cell = cells.next();  
                    System.out.println("Cell #" + cell.getColumnIndex());  
                    switch (cell.getCellType()) {   //根据cell中的类型来输出数据  
                    case HSSFCell.CELL_TYPE_NUMERIC:  
                        System.out.println(cell.getNumericCellValue());  
                        break;  
                    case HSSFCell.CELL_TYPE_STRING:  
                        System.out.println(cell.getStringCellValue());  
                        break;  
                    case HSSFCell.CELL_TYPE_BOOLEAN:  
                        System.out.println(cell.getBooleanCellValue());  
                        break;  
                    case HSSFCell.CELL_TYPE_FORMULA:  
                        System.out.println(cell.getCellFormula());  
                        break;  
                    default:  
                        System.out.println("unsuported sell type");  
                    break;  
                    }  
                }  
            }  
        } catch (IOException ex) {  
            ex.printStackTrace();  
        }  
    }  
}  
View Code

 二.经典例子,读取Excel 2003数据

技术分享
package testExcelFile;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class test2 {
    public static void main(String[] args) throws IOException {
        String path = "c:/test.xls";
        List<List<String>> bList= readExcel(path);
        for(List<String> sList : bList){
            for(String str : sList){
                System.out.print(str+" ");
            }
            System.out.println();
        }
    }
    
    public static List<List<String>> readExcel(String path) throws IOException{
        InputStream is = new FileInputStream(path);
        HSSFWorkbook work = new HSSFWorkbook(is);
        List<List<String>> result = new ArrayList<List<String>>();
        
        for(int numSheet =0;numSheet<work.getNumberOfSheets();numSheet++){
            HSSFSheet sheet = work.getSheetAt(numSheet);
            if(sheet == null){
                continue;
            }
            for(int rowNum = 1;rowNum<sheet.getLastRowNum();rowNum++){
                HSSFRow row = sheet.getRow(rowNum);
                
                int minCol = row.getFirstCellNum();
                int maxCol = row.getLastCellNum();
                List<String> rowList = new ArrayList<String>();
                
                for(int colInd = minCol;colInd<maxCol;colInd++){
                    HSSFCell cell = row.getCell(colInd);
                    if(cell == null){
                        continue;
                    }
                    rowList.add(cell.getStringCellValue());
                }
                result.add(rowList);
            }
        }
        return result;
    }
    
}
View Code

 注:XSSFWorkbook是excel 2007 ,HSSFWorkbook是excel 2003 ,

 

JAVA使用POI读取EXCEL文件的简单model

原文:http://www.cnblogs.com/cxxjohnson/p/5325256.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!