1.旧版本
在新的版本中formate已经被打上废弃标记。那么不推荐使用这种方式。
2.推荐方式
推荐使用另外一种方式【 Converter 】代码如下,例如需要格式化到毫秒【yyyy-MM-dd HH:mm:ss SSS】级别
创建一个公共Converter
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateForMillisecondConverter implements Converter<Date> {
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
@Override
public Class<Date> supportJavaTypeKey() {
return Date.class;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return CellDataTypeEnum.STRING;
}
@Override
public WriteCellData convertToExcelData(Date value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
if (value == null) {
return new WriteCellData();
}
return new WriteCellData(DATE_FORMAT.format(value));
}
}
使用方式
@ColumnWidth(20)
@ExcelProperty(value = "时间",converter = DateForMillisecondConverter.class)
private Date date;
3.使用效果
导出时,即可带上毫秒
4. 类推
其他例如不同的格式也可以进行相同的修改即可。修改此处即可
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");