WriteSheet sheet = EasyExcel.writerSheet().build(); // 简单导出 try { response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(pathName)); response.setContentType("application/vnd.ms-excel;charset=UTF-8"); response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); EasyExcel.write(response.getOutputStream(), class1).build().write(list, sheet).finish(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }导出的日期,没有按照指定的格式写入
时间: 2023-11-28 07:51:17 浏览: 33
在 EasyExcel 中,日期类型默认会按照 Excel 的日期格式写入,如果需要按照指定格式写入,可以通过使用 `@DateTimeFormat` 注解来实现。例如,如果你想将日期格式化为"yyyy-MM-dd",可以在实体类的日期字段上添加注解:
```
@DateTimeFormat("yyyy-MM-dd")
private Date date;
```
如果你已经添加了注解但导出的日期仍未按照指定格式写入,可以检查一下是否在写入 Excel 时使用了默认的日期格式化器。可以通过重写 `com.alibaba.excel.write.handler.WriteHandler.afterSheetCreate()` 方法来实现自定义日期格式化器,例如:
```
EasyExcel.write(response.getOutputStream(), class1)
.registerWriteHandler(new CellWriteHandler() {
@Override
public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
// 自定义日期格式化器
writeSheetHolder.getSheet().setDefaultColumnStyle(0, null);
writeSheetHolder.getSheet().setDefaultColumnStyle(1, null);
writeSheetHolder.getSheet().setDefaultColumnStyle(2, null);
writeSheetHolder.getSheet().setDefaultColumnStyle(3, null);
writeSheetHolder.getSheet().setDefaultColumnStyle(4, null);
writeSheetHolder.getSheet().setDefaultColumnStyle(5, null);
writeSheetHolder.getSheet().setDefaultColumnStyle(6, null);
writeSheetHolder.getSheet().setDefaultColumnStyle(7, null);
writeSheetHolder.getSheet().setDefaultColumnStyle(8, null);
writeSheetHolder.getSheet().setDefaultColumnStyle(9, null);
writeSheetHolder.getSheet().setDefaultColumnStyle(10, null);
writeSheetHolder.getSheet().setDefaultColumnStyle(11, null);
writeSheetHolder.getSheet().setDefaultColumnStyle(12, null);
writeSheetHolder.getSheet().setDefaultColumnStyle(13, null);
writeSheetHolder.getSheet().setDefaultColumnStyle(14, null);
CellStyle cellStyle = writeWorkbookHolder.getOrCreateCellStyle(writeWorkbookHolder.getOrCreateFont());
cellStyle.setDataFormat(writeWorkbookHolder.createDataFormat().getFormat("yyyy-MM-dd"));
writeSheetHolder.getSheet().setDefaultColumnStyle(0, cellStyle);
}
})
.build()
.write(list, sheet)
.finish();
```
可以通过 `setDefaultColumnStyle()` 方法设置日期格式化器。在上面的例子中,我们使用 `setDataFormat()` 方法将日期格式设置为"yyyy-MM-dd"。