`
surfingForRest
  • 浏览: 142455 次
  • 性别: Icon_minigender_2
  • 来自: 大连
社区版块
存档分类
最新评论

JAVA解析EXCEL(2003和2007)

阅读更多
本文参考:
http://wenku.baidu.com/view/707f07d95022aaea998f0fd1.html
http://feitian0127.iteye.com/blog/1152524
感谢两位。

使用的包:



代码如下:
import java.util.ArrayList; 
import java.io.FileInputStream;
import java.io.IOException;
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 ReadExcel {
	public ArrayList<ArrayList<String>> readExcel(String fileName,String path) {
		ArrayList<ArrayList<String>> Row =new ArrayList<ArrayList<String>>();
		
		try {
			Workbook workBook = null;
            try {
        	workBook = new XSSFWorkbook(path+"\\"+fileName);
            } catch (Exception ex) {
            workBook = new HSSFWorkbook(new FileInputStream(path+"\\"+fileName));
        } 
			
			
			for (int numSheet = 0; numSheet < workBook.getNumberOfSheets(); numSheet++) {
				Sheet sheet = workBook.getSheetAt(numSheet);
				if (sheet == null) {
					continue;
				}
				// 循环行Row
				for (int rowNum = 1; rowNum <= sheet.getLastRowNum(); rowNum++) {
					Row row = sheet.getRow(rowNum);
					if (row == null) {
						continue;
					}
					
					// 循环列Cell
					ArrayList<String> arrCell =new ArrayList<String>();
					for (int cellNum = 0; cellNum <= row.getLastCellNum(); cellNum++) {
						Cell cell = row.getCell(cellNum);
						if (cell == null) {
							continue;
						}
						arrCell.add(getValue(cell));
					}
					Row.add(arrCell);
				}
			}
		} catch (IOException e) {
			System.out.println("e:"+e);
		}
	
		return Row;
	}

	private String getValue(Cell cell) {
		if (cell.getCellType() == cell.CELL_TYPE_BOOLEAN) {
			return String.valueOf(cell.getBooleanCellValue());
		} else if (cell.getCellType() == cell.CELL_TYPE_NUMERIC) {
			return String.valueOf(cell.getNumericCellValue());
		} else {
			return String.valueOf(cell.getStringCellValue());
		}
	}

	public static void main(String[] args) {
		ReadExcel s= new ReadExcel();
		//ArrayList<ArrayList<String>> row=s.readExcel("TEST.xlsx","D:\\Program Files\\Java");
		ArrayList<ArrayList<String>> row=s.readExcel("TEST1.xls","D:\\Program Files\\Java");
		System.out.println("size:"+row.size());
		for (ArrayList<String> cell : row) {
			for (String str : cell) {
				System.out.println(str);
				}
			}
	}
}
  • 大小: 19.3 KB
分享到:
评论
2 楼 贝塔ZQ 2016-09-29  
java实现解析excel文件,PageOffice插件可以实现的,支持03,07,10,13等office版本的文件,用起来是很方便的。
1 楼 wangxin2009 2014-09-01  
很好用,多谢!

相关推荐

Global site tag (gtag.js) - Google Analytics