POI导入数据

package util;



import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStream;

import java.util.ArrayList;

import java.util.List;



import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.xssf.usermodel.XSSFRow;

import org.apache.poi.xssf.usermodel.XSSFSheet;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;



public class ReadExcel {

	

	public static final String OFFICE_EXCEL_2003_POSTFIX = "xls";

    public static final String OFFICE_EXCEL_2010_POSTFIX = "xlsx";

    public static final String EMPTY = "";

    public static final String POINT = ".";

    public static final String NOT_EXCEL_FILE = " : Not the Excel file!";

    public static final String PROCESSING = "Processing...";

	

    

	public static List<ArrayList<String>> readExcel(String path,int sheelNum,int startRow,int cols){

		 if (path == null || EMPTY.equals(path)) {

	            return null;

	        } else {

	            String postfix = getPostfix(path);

	            if (!EMPTY.equals(postfix)) {

	                if (OFFICE_EXCEL_2003_POSTFIX.equals(postfix)) {

	                    return readXls(path,sheelNum,startRow,cols);

	                } else if (OFFICE_EXCEL_2010_POSTFIX.equals(postfix)) {

	                    return readXlsx(path,sheelNum,startRow,cols);

	                }

	            } else {

	                System.out.println(path + NOT_EXCEL_FILE);

	            }

	        }

	        return null;

	}

	 /**

     * Read the Excel 2003-2007

     * @param path the path of the Excel

     * @return

     * @throws IOException

     */

    public static List<ArrayList<String>> readXls(String path,int sheelNum,int startRow,int cols) {

        System.out.println(PROCESSING + path);

        List<ArrayList<String>> list = new ArrayList<ArrayList<String>>();

		try {

			InputStream is = new FileInputStream(path);

			HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is);

			    HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(sheelNum);

			    if (hssfSheet == null) {

			        return list;

			    }

			    // Read the Row

			    for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {

			        HSSFRow hssfRow = hssfSheet.getRow(rowNum);

			        if (hssfRow != null) {

			        	ArrayList<String> rowList = new ArrayList<String>();

			        	for (int col = 0; col < cols; col++) {

							rowList.add(hssfRow.getCell(col).getStringCellValue());

						}

			            list.add(rowList);

			        }

			    }

		} catch (FileNotFoundException e) {

			e.printStackTrace();

		} catch (IOException e) {

			e.printStackTrace();

		}

        return list;

    }

	

	 /**

     * Read the Excel 2010

     * @param path the path of the excel file

     * @return

     * @throws IOException

     */

    public static List<ArrayList<String>> readXlsx(String path,int sheelNum,int startRow,int cols) {

        System.out.println(PROCESSING + path);

        List<ArrayList<String>> list = new ArrayList<ArrayList<String>>();

        InputStream is;

		try {

			is = new FileInputStream(path);

			XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is);

	        // Read the Sheet

            XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(sheelNum);

            if (xssfSheet == null) {

                return list;

            }

            // Read the Row

            for (int rowNum = startRow; rowNum <= xssfSheet.getLastRowNum(); rowNum++) {

                XSSFRow xssfRow = xssfSheet.getRow(rowNum);

                if (xssfRow != null) {

                	ArrayList<String> rowList = new ArrayList<String>();

                	for (int col = 0; col < cols; col++) {

						rowList.add(xssfRow.getCell(col).getStringCellValue());

					}

                    list.add(rowList);

                }

            }

		} catch (FileNotFoundException e) {

			e.printStackTrace();

		}catch (IOException e) {

			e.printStackTrace();

		}

        return list;

    }

    /**

     * get postfix of the path

     * @param path

     * @return

     */

    private static String getPostfix(String path) {

        if (path == null || EMPTY.equals(path.trim())) {

            return EMPTY;

        }

        if (path.contains(POINT)) {

            return path.substring(path.lastIndexOf(POINT) + 1, path.length());

        }

        return EMPTY;

    }

}

  

你可能感兴趣的:(poi)