java—传递字符串对象时使用ApachePOI格式化日期

cnwbcb6i  于 2021-07-11  发布在  Java
关注(0)|答案(1)|浏览(313)

我需要将excel中的日期单元格格式化为dd/mm/yyyy
我很感激这也许不是“正确”的标准,但是,这是客户想要的。。。
我传入单元格的日期格式为yyyy-mm-dd
所以,
我有这个密码:

Cell dateCell;
dateCell = row.createCell(3);
dateCell.setCellValue(p.getDateOfBirth());
CellStyle dateCellStyle = WorkBook.createCellStyle();
dateCellStyle.setDataFormat(creationHelper.createDataFormat().getFormat("dd/mm/yyyy"));
dateCell.setCellStyle(dateCellStyle);

根据这个:http://www.kscodes.com/java/writing-various-date-formats-in-excel-using-poi/(1)
我相信应该有用。但是当我创建excel文件时,日期仍然是yyyy-mm-dd
我在这里看到了如何使用JavaApachePOI库在excel中设置日期字段?我注意到这条线

cell.setCellType(CellType.NUMERIC);

但在(1)中没有提到这一点
有人知道我做错了什么吗?

bgibtngc

bgibtngc1#

我传入单元格的日期格式为yyyy-mm-dd
这是问题的根本原因。api希望您通过 Date 当你经过一个 String 对象。您需要将日期字符串解析为 Date 对象并将其传递给 dateCell.setCellValue 如下图所示:

Cell dateCell;
dateCell = row.createCell(3);
Date dateOfBirth = new SimpleDateFormat("yyyy-MM-dd").parse(p.getDateOfBirth() + "");
dateCell.setCellValue(dateOfBirth);
CellStyle dateCellStyle = WorkBook.createCellStyle();
dateCellStyle.setDataFormat(creationHelper.createDataFormat().getFormat("dd/mm/yyyy"));
dateCell.setCellStyle(dateCellStyle);

相关问题