java 操作 poi 解析、读取 Excel 文件

读取Excel 我这里是用的POI 的jar包

dom4j-1.6.1.jar         poi-3.10.1-20140818.jar        poi-excelant-3.10.1-20140818.jar    xmlbeans-2.6.0.jar

poi-ooxml-3.10.1-20140818.jar       poi-ooxml-schemas-3.10.1-20140818.jar       poi-scratchpad-3.10.1-20140818.jar

以下是maven地址:

<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.10.1</version> 
</dependency>


<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.10.1</version>
</dependency>


<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-excelant</artifactId>
<version>3.10.1</version>
</dependency>

啥也不说了。。。 直接上代码 


import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

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 ExcelRead {
	
	public static void main(String[] args) {
		Map<String,Object> map=readExcelCreateCategory("F:\\book.xlsx");
	}
	
	/**
	 * 方法描述:  读取Excel 文件  并 进行解析
	 * @param fileName  Excel 地址
	 * @author Andy  2014-10-29  下午02:41:29
	 */
	public static Map<String,Object> readExcelCreateCategory(String fileName){
		Map<String,Object> map=new HashMap<String, Object>();
		File file = new File(fileName);
		if(file!=null){
	        try {  
	            InputStream input = new FileInputStream(file);  //建立输入流  
	            Workbook wb  = null; 
	            wb =new XSSFWorkbook(input);
	            //wb = new HSSFWorkbook(input);  // office 2003版本、WPS版本  用这个方法解析
//	            System.out.println("表单数量:"+wb.getNumberOfSheets());
	            if(wb.getNumberOfSheets()>0){ //表单数 必须大于 0
//	            	System.out.println("表单名称"+wb.getSheetName(0));//获取第一个表单的 名称
            		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.print("Cell #" + cell.getColumnIndex()); //获取 列 数
		                    Object obj=null; 
	                    	switch (cell.getCellType()) {   //根据cell中的类型来输出数据  
			                    case HSSFCell.CELL_TYPE_NUMERIC:  
			                    	obj=cell.getNumericCellValue();  
			                        break;  
			                    case HSSFCell.CELL_TYPE_STRING:  
			                    	obj=cell.getStringCellValue();  
			                        break;  
			                    case HSSFCell.CELL_TYPE_BOOLEAN:  
			                    	obj=cell.getBooleanCellValue();  
			                        break;  
			                    case HSSFCell.CELL_TYPE_FORMULA:  
			                    	obj=cell.getCellFormula();  
			                        break;  
			                    default:  
			                    	obj="unsuported sell type";  
			                    break;  
		                    }
	                    	System.out.println(obj.toString());
		                }
		            }
	            }else{
	            	map.put("status", "false");
            		map.put("info", "表单数不能为0!");
	            }
	        } catch (IOException ex) {  
	            ex.printStackTrace();  
	        }  
		}
		return map;
	}
}






猜你喜欢

转载自blog.csdn.net/u010025294/article/details/40589957