From bdf8f19609636e8bb5533192ff89841c64789606 Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期六, 26 二月 2022 09:47:53 +0800 Subject: [PATCH] 优化Excel格式化不同类型的日期对象 --- src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java | 45 +++++++++++++++++++++++++++++++++++++++------ 1 files changed, 39 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java b/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java index f2e4140..8b9ba85 100644 --- a/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java +++ b/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java @@ -9,6 +9,8 @@ import java.lang.reflect.Method; import java.math.BigDecimal; import java.text.DecimalFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; @@ -132,7 +134,7 @@ * 褰撳墠琛屽彿 */ private int rownum; - + /** * 鏍囬 */ @@ -314,7 +316,7 @@ String dateFormat = field.getAnnotation(Excel.class).dateFormat(); if (StringUtils.isNotEmpty(dateFormat)) { - val = DateUtils.parseDateToStr(dateFormat, (Date) val); + val = parseDateToStr(dateFormat, (Date) val); } else { @@ -409,7 +411,7 @@ { return exportExcel(list, sheetName, StringUtils.EMPTY); } - + /** * 瀵筶ist鏁版嵁婧愬皢鍏堕噷闈㈢殑鏁版嵁瀵煎叆鍒癳xcel琛ㄥ崟 * @@ -431,7 +433,6 @@ * @param list 瀵煎嚭鏁版嵁闆嗗悎 * @param sheetName 宸ヤ綔琛ㄧ殑鍚嶇О * @return 缁撴灉 - * @throws IOException */ public void exportExcel(HttpServletResponse response, List<T> list, String sheetName) { @@ -446,7 +447,6 @@ * @param sheetName 宸ヤ綔琛ㄧ殑鍚嶇О * @param title 鏍囬 * @return 缁撴灉 - * @throws IOException */ public void exportExcel(HttpServletResponse response, List<T> list, String sheetName, String title) { @@ -823,7 +823,7 @@ String dictType = attr.dictType(); if (StringUtils.isNotEmpty(dateFormat) && StringUtils.isNotNull(value)) { - cell.setCellValue(DateUtils.parseDateToStr(dateFormat, (Date) value)); + cell.setCellValue(parseDateToStr(dateFormat, (Date) value)); } else if (StringUtils.isNotEmpty(readConverterExp) && StringUtils.isNotNull(value)) { @@ -1396,4 +1396,37 @@ } return sheetIndexPicMap; } + + /** + * 鏍煎紡鍖栦笉鍚岀被鍨嬬殑鏃ユ湡瀵硅薄 + * + * @param dateFormat 鏃ユ湡鏍煎紡 + * @param val 琚牸寮忓寲鐨勬棩鏈熷璞� + * @return 鏍煎紡鍖栧悗鐨勬棩鏈熷瓧绗� + */ + public String parseDateToStr(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; + } } -- Gitblit v1.9.3