#我正在使用Apache POI读取excel文件。无法阅读日期。在excel中,日期格式2017-03-15 6:00(格式格式=自定义)&使用poi,阅读42809.25
cell = ExcelWSheet.getRow(RowNum).getCell(ColNum);
int dataType = cell.getCellType();
if (dataType == 0) {
String cellData1 = NumberToTextConverter.toText(cell.getNumericCellValue());
return cellData1;
} else {
String cellData = cell.getStringCellValue();
return cellData;
}
答案 0 :(得分:1)
如果您知道哪个单元格,即列位置说每行中的2将是一个日期,您可以直接转到row.getCell(2).getDateCellValue()
。
查看POI的DateUtil类中处理Excel表格中日期的方法DateUtil.isCellDateFormatted()
或者您可以获得如下所示的日期
if (DateUtil.isCellDateFormatted(cell))
{
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
cellValue = sdf.format(cell.getDateCellValue());
} catch (ParseException e) {
e.printStackTrace();
}
}
答案 1 :(得分:1)
感谢Dhaval :)我尝试使用您的代码和其他一些行。现在,下面的代码对我有用。
cell = ExcelWSheet.getRow(RowNum).getCell(ColNum);
if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
if (DateUtil.isCellDateFormatted(cell)) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm");
String cellDate1 = sdf.format(cell.getDateCellValue());
return cellDate1;
} else {
String cellData2 = NumberToTextConverter.toText(cell.getNumericCellValue());
return cellData2;
}
} else {
String cellData = cell.getStringCellValue();
return cellData;
}