poi 读取excel2007

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

import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ReadExcel2007 {
	public static void main(String[] args) {
		FileInputStream is = null;
		String srcFile = "e:/2007.xlsx";		
		try {
			is = new FileInputStream(new File(srcFile));
			XSSFWorkbook wb = new XSSFWorkbook(new BufferedInputStream(is));
			for (int i = 0; i < wb.getNumberOfSheets(); i++) {// 循环sheet
				XSSFSheet childSheet = wb.getSheetAt(i);
				for (int j = 0; j <= childSheet.getLastRowNum(); j++) {// 循环该子sheet row 
					XSSFRow row = childSheet.getRow(j);

					if (row != null) {
						for (int k = 0; k <= row.getLastCellNum(); k++) {// 循环该子sheet行对应的单元格项
							XSSFCell cell = row.getCell(k);// 单元格
							if (cell != null) {
								switch (cell.getCellType()) {
								case XSSFCell.CELL_TYPE_BLANK:
									break;
								case XSSFCell.CELL_TYPE_ERROR:
									break;
								case XSSFCell.CELL_TYPE_BOOLEAN:
									System.out.print(cell.getBooleanCellValue());
									break;
								case XSSFCell.CELL_TYPE_FORMULA:// 公式
									System.out.print(cell.getNumericCellValue());
									break;
								case XSSFCell.CELL_TYPE_NUMERIC:
									if(DateUtil.isCellDateFormatted(cell)){
										System.out.print(cell.getDateCellValue());
									}else{
										System.out.print(Double.valueOf(cell.getNumericCellValue()).longValue());										
									}
									break;
								case XSSFCell.CELL_TYPE_STRING:
									System.out.print(cell.getRichStringCellValue());
									break;
								default:
									System.out.print(cell);
								}
							}
							System.out.print(',');
						}
						System.out.println();
					}
				}
			}			
			 
		} catch (Exception ex) {
			ex.printStackTrace();
		} finally {
			try {
				if (is != null) {
					is.close();
				}
			} catch (Exception e) {
			}
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值