在進行關鍵字驅動測試框架的搭建時,我們可能會遇到當單元格里的內容是手機號或者密碼等數字時使用row.getCell(0).getStringCellValue()這個方法是會報錯的,因爲這牽扯到方法過時的原因:
所以我們可以使用以下的方法解決這個問題:
首先封裝一個類型轉換的方法getCellValue(),傳入獲取的cell
public static String getCellValue(Cell cell) {
String cellValue = "";
// 以下是判斷數據的類型
switch (cell.getCellTypeEnum()) {
case NUMERIC: // 數字
if (org.apache.poi.ss.usermodel.DateUtil.isCellDateFormatted(cell)) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
cellValue = sdf.format(org.apache.poi.ss.usermodel.DateUtil.getJavaDate(cell.getNumericCellValue())).toString();
} else {
DataFormatter dataFormatter = new DataFormatter();
cellValue = dataFormatter.formatCellValue(cell);
}
break;
case STRING: // 字符串
cellValue = cell.getStringCellValue();
break;
case BOOLEAN: // Boolean
cellValue = cell.getBooleanCellValue() + "";
break;
case FORMULA: // 公式
cellValue = cell.getCellFormula() + "";
break;
case BLANK: // 空值
cellValue = "";
break;
case ERROR: // 故障
cellValue = "非法字符";
break;
default:
cellValue = "未知類型";
break;
}
return cellValue;
}
然後直接調用即可:
cell = excelSheet.getRow(rownum).getCell(cellnum);
String cellData = getCellValue(cell);