方法: getCellType()
例:
swith(cell.getCellType())
{
case HSSFCell.CELL_TYPE_NUMERIC: -- (0) 数字类型
-- FUNCTION()...
break;
case HSSFCell.CELL_TYPE_STRING: -- (1) String类型
-- FUNCTION()...
break;
case HSSFCell.CELL_TYPE_FORMULA: -- (2) 公式型
-- FUNCTION()...
break;
case HSSFCell.CELL_TYPE_BLANK: -- (3) NULL空值
-- FUNCTION()...
break;
case HSSFCell.CELL_TYPE_BOOLEAN: -- (4) Boolean布尔型
-- FUNCTION()...
break;
case HSSFCell.CELL_TYPE_ERROR: -- (5) 错误
-- FUNCTION()...
break;
default: -- 其他
-- FUNCTION()...
break;
}
方法: cell.getCellStyle().getDataFormat()
值:
yyyy-MM-dd : 14
yyyy年m月d日 : 31
yyyy年m月 : 57
m月d日 : 58
HH:mm : 20
h时mm分 :32
例:
// path 临时文件地址
String path;
// 创建workbook
Workbook workbook = createWorkBook(path);
// 获取sheet页
Sheet sheet = workbook.getSheetAt(0);
// 行号 或者 列号
int i;
// 获取行
Row row = sheet.getRow(i);
// 获取单元格
Cell cell = row.getCell(i);
正文:
Public String getCellValue(Cell cell)
{
String r = "";
switch((cell).getCellType())
{
case 0: -- 数字类型
// 自定义日期格式 yyyy年m月d日
// 输入 2023年2月9日 返回 2023-2-9
if(cell.getCellStyle().getDataFormat() == 31)
{
// 自定义日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
double de = cell.getNumericCellValue();
Date date = DateUtil.getJavaDate(de);
r = sdf.format(date);
break;
}
else if (DateUtil.isCellDateFormatted(cell)) {
// 单元格类型 日期 输入2023/2/9 返回 2023-2-9
// getDateCellValue()方法 获取单元格日期值
Date d = cell.getDateCellValue();
java.text.DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
r = format.format(d);
break;
}
else {
// 数字
// getNumericCellValue()方法 获取单元格数字值
double number = cell.getNumericCellValue();
double intNumber = (int) Math.floor(number);
if (number - intNumber == 0.0D)
r = String.valueOf((int) number);
else {
r = String.valueOf(number);
}
break;
}
case 1: -- 字符类型
// getStringCellValue()方法 获取单元格字符串值
r = cell.getStringCellValue();
break;
case 3: -- 空值
break;
defult: -- 其他
break;
}
return r;
}