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();
}
posted on 2017-04-23 13:34  明翼123  阅读(394)  评论(0编辑  收藏  举报