|
|
@ -6,6 +6,8 @@ import java.lang.reflect.Field; |
|
|
|
import java.lang.reflect.Method; |
|
|
|
import java.lang.reflect.Method; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.text.DecimalFormat; |
|
|
|
import java.text.DecimalFormat; |
|
|
|
|
|
|
|
import java.time.LocalDate; |
|
|
|
|
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.Arrays; |
|
|
|
import java.util.Arrays; |
|
|
|
import java.util.Comparator; |
|
|
|
import java.util.Comparator; |
|
|
@ -282,7 +284,7 @@ public class ExcelUtil<T> |
|
|
|
String dateFormat = field.getAnnotation(Excel.class).dateFormat(); |
|
|
|
String dateFormat = field.getAnnotation(Excel.class).dateFormat(); |
|
|
|
if (StringUtils.isNotEmpty(dateFormat)) |
|
|
|
if (StringUtils.isNotEmpty(dateFormat)) |
|
|
|
{ |
|
|
|
{ |
|
|
|
val = DateUtils.parseDateToStr(dateFormat, (Date) val); |
|
|
|
val = this.parseDateToStr(dateFormat, (Date) val); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
else |
|
|
|
{ |
|
|
|
{ |
|
|
@ -701,7 +703,7 @@ public class ExcelUtil<T> |
|
|
|
String separator = attr.separator(); |
|
|
|
String separator = attr.separator(); |
|
|
|
if (StringUtils.isNotEmpty(dateFormat) && StringUtils.isNotNull(value)) |
|
|
|
if (StringUtils.isNotEmpty(dateFormat) && StringUtils.isNotNull(value)) |
|
|
|
{ |
|
|
|
{ |
|
|
|
cell.setCellValue(DateUtils.parseDateToStr(dateFormat, (Date) value)); |
|
|
|
cell.setCellValue(this.parseDateToStr(dateFormat, (Date) value)); |
|
|
|
} |
|
|
|
} |
|
|
|
else if (StringUtils.isNotEmpty(readConverterExp) && StringUtils.isNotNull(value)) |
|
|
|
else if (StringUtils.isNotEmpty(readConverterExp) && StringUtils.isNotNull(value)) |
|
|
|
{ |
|
|
|
{ |
|
|
@ -1154,4 +1156,29 @@ public class ExcelUtil<T> |
|
|
|
} |
|
|
|
} |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* 增加ExcelUtil对java8 日期的支持 |
|
|
|
|
|
|
|
* 格式化日期,日期可能是:{@link Date}、{@link LocalDateTime}、 {@link LocalDate} 其他日期暂不支持 |
|
|
|
|
|
|
|
* @param dateFormat 日期格式 |
|
|
|
|
|
|
|
* @param val 被格式化的日期对象 |
|
|
|
|
|
|
|
* @see DateUtils#parseDateToStr(String, Date) |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
private String parseDateToStr(final String dateFormat, Object val) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (val == null) { |
|
|
|
|
|
|
|
return ""; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
String str; |
|
|
|
|
|
|
|
if (val instanceof Date) { |
|
|
|
|
|
|
|
str = DateUtils.parseDateToStr(dateFormat, (Date) val); |
|
|
|
|
|
|
|
} else if (val instanceof LocalDateTime) { |
|
|
|
|
|
|
|
str = DateUtils.parseDateToStr(dateFormat, DateUtils.toDate((LocalDateTime) val)); |
|
|
|
|
|
|
|
} else if (val instanceof LocalDate) { |
|
|
|
|
|
|
|
str = DateUtils.parseDateToStr(dateFormat, DateUtils.toDate((LocalDate) val)); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
str = val.toString(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return str; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |