public void main(){
Workbook wookbook = ExcelUtil.createWorkbook(upload);
Sheet sheet = wookbook.getSheetAt(0);//读取第一个表格
int rows = sheet.getPhysicalNumberOfRows();//获取表格的行数
for (int i = 3; i < rows; i++) {//从第三行开始是输入的数据
Row row = sheet.getRow(i);
//空行校验
if (row == null || isRowEmpty(row)|| row.getFirstCellNum() < 0) {//空行跳过 试过很多种方法,都不太理想,用这三种方法校验基本上就都可以校验出来了
continue;
}
//获取Excel整数
HSSFDataFormatter dataFormatter = new HSSFDataFormatter();
String code = dataFormatter.formatCellValue(row.getCell(2));
//获取公式计算后的数据
String sellPrice =getCellValue(row.getCell(5));
}
}
//校验是否为空行
public boolean isRowEmpty(Row row) throws Exception {
for (int r = row.getFirstCellNum(); r < row.getLastCellNum(); r++) {
Cell cell = row.getCell(r);
if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK)
return false;
}
return true;
}
//获取公式计算后的值
public String getCellValue(Cell cell) throws Exception{
int cellType = cell.getCellType();
String cellValue = "";
switch (cellType) {
case HSSFCell.CELL_TYPE_NUMERIC:
cellValue = String.valueOf(cell.getNumericCellValue());
break;
case HSSFCell.CELL_TYPE_FORMULA:
try {
cellValue = cell.getStringCellValue();
} catch (IllegalStateException e) {
cellValue = String.valueOf(cell.getNumericCellValue());
}
break;
default:
cellValue = cell.getStringCellValue();
}
return cellValue.trim();
}