传递字符串对象时使用 apache poi 格式化日期
formatting dates using apache poi when passing a string object
我需要将 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
我看过这里 How to set date field in excel using java apache poi library?,我注意到它使用了行
cell.setCellType(CellType.NUMERIC);
但是(1)中没有提到这个
有人知道我做错了什么吗?
The date that I am passing in to the cell is formatted 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);
我需要将 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
我看过这里 How to set date field in excel using java apache poi library?,我注意到它使用了行
cell.setCellType(CellType.NUMERIC);
但是(1)中没有提到这个
有人知道我做错了什么吗?
The date that I am passing in to the cell is formatted 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);