code: public static Object getDataValue(CellDataType cellDataType, String value, SharedStringsTable sharedStringsTable, String numFmtString) {
  		if (null == value) {
  			return null;
  		}
  
  		Object result;
  		switch (cellDataType) {
  		case BOOL:
  			result = (value.charAt(0) != '0');
  			break;
  		case ERROR:
  			result = StrUtil.format("\\\"ERROR: {} ", value);
  			break;
  		case FORMULA:
  			result = StrUtil.format("\"{}\"", value);
  			break;
  		case INLINESTR:
  			result = new XSSFRichTextString(value).toString();
  			break;
  		case SSTINDEX:
  			try {
  				final int index = Integer.parseInt(value);
  				result = new XSSFRichTextString(sharedStringsTable.getEntryAt(index)).getString();
  			} catch (NumberFormatException e) {
  				result = value;
  			}
  			break;
  		case NUMBER:
  			result = getNumberValue(value, numFmtString);
  			break;
  		case DATE:
  			try {
  				result = getDateValue(value);
  			} catch (Exception e) {
  				result = value;
  			}
  			break;
  		default:
  			result = value;
  			break;
  		}
  		return result;
  	}
docs: 根据数据类型获取数据
  
  @param cellDataType 数据类型枚举
  @param value 数据值
  @param sharedStringsTable {@link SharedStringsTable}
  @param numFmtString 数字格式名
  @return 数据值