add jd8 time support for poi

This commit is contained in:
Looly 2019-11-16 05:56:25 +08:00
parent 6b122734df
commit fdcf383bfc
2 changed files with 69 additions and 56 deletions

View File

@ -8,6 +8,7 @@
### 新特性
* 【setting】 toBean改为泛型增加class参数重载pr#80@Gitee
* 【core】 XmlUtil使用JDK默认的实现避免第三方实现导致的问题issue#I14ZS1@Gitee
* 【poi】 写入单元格数据类型支持jdk8日期格式pr#628@Github
### Bug修复
* 【core】 修复DateUtil.format使用DateTime时区失效问题issue#I150I7@Gitee

View File

@ -18,6 +18,9 @@ import org.apache.poi.ss.util.SheetUtil;
import java.math.BigDecimal;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.temporal.TemporalAccessor;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
@ -160,12 +163,21 @@ public class CellUtil {
cell.setCellStyle(styleSet.getCellStyleForDate());
}
cell.setCellValue((Date) value);
} else if (value instanceof Instant) {
} else if (value instanceof TemporalAccessor) {
if (null != styleSet && null != styleSet.getCellStyleForDate()) {
cell.setCellStyle(styleSet.getCellStyleForDate());
}
if (value instanceof Instant) {
cell.setCellValue(Date.from((Instant) value));
} else if (value instanceof LocalDateTime) {
cell.setCellValue((LocalDateTime) value);
} else if (value instanceof LocalDate) {
cell.setCellValue((LocalDate) value);
}
} else if (value instanceof Calendar) {
if (null != styleSet && null != styleSet.getCellStyleForDate()) {
cell.setCellStyle(styleSet.getCellStyleForDate());
}
cell.setCellValue((Calendar) value);
} else if (value instanceof Boolean) {
cell.setCellValue((Boolean) value);
@ -249,7 +261,6 @@ public class CellUtil {
* 获取合并单元格的值<br>
* 传入的x,y坐标列行数可以是合并单元格范围内的任意一个单元格
*
*
* @param sheet {@link Sheet}
* @param y 行号从0开始可以是合并单元格范围中的任意一行
* @param x 列号从0开始可以是合并单元格范围中的任意一列
@ -280,6 +291,7 @@ public class CellUtil {
}
// -------------------------------------------------------------------------------------------------------------- Private method start
/**
* 获取数字类型的单元格值
*