POI读取Excel表格数据类型判断与取值

常量说明取值
Cell.CELL_TYPE_NUMERIC数值类型cellValue.getNumberValue()
Cell.CELL_TYPE_STRING字符串类型cellValue.getStringValue()
Cell.CELL_TYPE_BOOLEAN布尔类型cellValue.getBooleanValue()
Cell.CELL_TYPE_FORMULA表达式类型需要转换
Cell.CELL_TYPE_ERROR异常类型cellValue.getErrorCellValue()
Cell.CELL_TYPE_BLANK 

具体取值:

FileInputStream fis = new FileInputStream("c:/temp/test.xls");
Workbook wb = new HSSFWorkbook(fis); // or new XSSFWorkbook("c:/temp/test.xls")
Sheet sheet = wb.getSheetAt(0);
FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();

for (int j = 0; j < sheet.getLastRowNum() + 1; j++) {// getLastRowNum,获取最后一行的行标
	HSSFRow row = sheet.getRow(j);
	if (row != null) {
		for (int k = 0; k < row.getLastCellNum(); k++) {// getLastCellNum,是获取最后一个不为空的列是第几个
			if (row.getCell(k) != null) { // getCell 获取单元格数据
				switch (row.getCell(k).getCellType()) {
				case Cell.CELL_TYPE_BOOLEAN:
					System.out.println(row.getCell(k).getBooleanValue());
					break;
				case Cell.CELL_TYPE_NUMERIC:
					System.out.println(row.getCell(k).getNumberValue());
					break;
				case Cell.CELL_TYPE_STRING:
					System.out.println(row.getCell(k).getStringValue());
					break;
				case Cell.CELL_TYPE_BLANK:
					break;
				case Cell.CELL_TYPE_ERROR:
					System.out.println(row.getCell(k).getErrorCellValue());
					break;
				case Cell.CELL_TYPE_FORMULA:
					System.out.println(evaluator.evaluate(row.getCell(k)).getNumberValue());
					break;
				}
				System.out.print(row.getCell(k) + "\t");
			} else {
				System.out.print("\t");
			}
		}
	}
	System.out.println(""); // 读完一行后换行
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值