`
scnujie
  • 浏览: 126393 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

用apache poi 读取excel文件很方便

阅读更多
用三个循环遍历就行了: 第一层是sheet循环,然后是行循环,最后是单元格循环.

package com.jie.java;

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

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

public class ExcelRead {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		try{
			FileInputStream is = new FileInputStream(new File("c:/最终成绩.xls"));
			HSSFWorkbook wb=new HSSFWorkbook(is);
			
			int sheetNum=wb.getNumberOfSheets();
			
			for(int i=0;i<sheetNum;i++)
			{
				HSSFSheet childSheet = wb.getSheetAt(i);
				int rowNum = childSheet.getLastRowNum();
				
				for(int j=0;j<rowNum;j++)
				{
				    HSSFRow row = childSheet.getRow(j);	
				    int cellNum=row.getLastCellNum();
				    
				    for(int k=0;k<cellNum;k++)
				    {
				    	System.out.print(row.getCell(k).toString()+" ");
				    }
				    System.out.println();
				}
				
			}
		}catch(Exception e)
		{
			e.printStackTrace();
		}

	}

}
4
5
分享到:
评论
4 楼 akushin 2011-06-03  
是不是会少一行··
3 楼 mady0505 2011-03-22  
楼下的童鞋,如果有隔行,稍微判断一下就可以了
if(row!=null){
	int cellNum = row.getLastCellNum();
	System.out.println("cellNum--"+cellNum);
	for(int j=0; j<cellNum; j++){
	     HSSFCell cell = row.getCell(j);
	     if(cell!=null){
	     System.out.println("sheet "+m+" row "+i+" column "+j+":  "+ cell);
	     }
        }
}
2 楼 cuisuqiang 2010-09-09  
楼主是否发现int sheetNum=wb.getNumberOfSheets();在读取时,如果各行有数据,就读取不到了!
1 楼 yaoneng 2010-04-25  
谢谢楼主,弄明白了~~

相关推荐

Global site tag (gtag.js) - Google Analytics