java中easyexcel导出表格,数据属性加入了@DateTimeFormat设定yyyy-MM-dd,为啥导出来的数据还是显示时分秒
时间: 2023-11-27 07:53:50 浏览: 135
显示分秒时
在使用EasyExcel导出表格时,如果数据属性加入了@DateTimeFormat设定yyyy-MM-dd,但导出来的数据还是显示时分秒,很可能是因为Excel的默认日期格式不是yyyy-MM-dd。
可以在导出Excel时,通过创建样式并设置日期格式来解决这个问题。具体操作如下:
1. 在定义Excel表头时,将日期字段对应的列设置为Date类型:
```java
@ExcelProperty(value = "日期", index = 2)
@DateTimeFormat("yyyy-MM-dd")
private Date date;
```
2. 在导出Excel时,创建日期格式的CellStyle,并将其应用到对应的单元格上:
```java
// 创建Excel表格并写入数据
ExcelWriter writer = EasyExcel.write(response.getOutputStream(), ExportData.class).build();
Sheet sheet = writer.getSheet();
CellStyle dateStyle = writer.getWorkbook().createCellStyle();
dateStyle.setDataFormat(writer.getWorkbook().createDataFormat().getFormat("yyyy-MM-dd"));
for (int i = 0; i < dataList.size(); i++) {
Row row = sheet.createRow(i + 1);
ExportData data = dataList.get(i);
row.createCell(0).setCellValue(data.getName());
row.createCell(1).setCellValue(data.getAge());
Cell dateCell = row.createCell(2);
dateCell.setCellValue(data.getDate());
dateCell.setCellStyle(dateStyle); // 应用日期格式的CellStyle
}
writer.finish();
```
这样就可以导出带有日期格式的Excel表格了。
阅读全文