Преглед изворни кода

导出数据新增转换long的转换器

xucaiqin пре 2 година
родитељ
комит
9d44910246

+ 40 - 0
sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/config/easyexcel/LongStringConverter.java

@@ -0,0 +1,40 @@
+package com.sckw.excel.config.easyexcel;
+
+import cn.hutool.core.convert.Convert;
+import com.alibaba.excel.converters.Converter;
+import com.alibaba.excel.enums.CellDataTypeEnum;
+import com.alibaba.excel.metadata.GlobalConfiguration;
+import com.alibaba.excel.metadata.data.ReadCellData;
+import com.alibaba.excel.metadata.data.WriteCellData;
+import com.alibaba.excel.metadata.property.ExcelContentProperty;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.Objects;
+
+
+@Slf4j
+public class LongStringConverter implements Converter<Long> {
+    @Override
+    public Class<Long> supportJavaTypeKey() {
+        return Long.class;
+    }
+
+    @Override
+    public CellDataTypeEnum supportExcelTypeKey() {
+        return CellDataTypeEnum.STRING;
+    }
+
+    @Override
+    public Long convertToJavaData(ReadCellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
+        return Convert.toLong(cellData.getData());
+    }
+
+    @Override
+    public WriteCellData<String> convertToExcelData(Long value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
+        if (Objects.nonNull(value)) {
+            String str = Convert.toStr(value);
+            return new WriteCellData<>(str);
+        }
+        return new WriteCellData<>("");
+    }
+}

+ 13 - 8
sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/utils/ExcelUtil.java

@@ -5,17 +5,13 @@ import com.alibaba.excel.ExcelWriter;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.excel.write.metadata.WriteSheet;
 import com.alibaba.excel.write.metadata.WriteSheet;
 import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
 import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.annotation.ExcelContext;
 import com.sckw.excel.annotation.ExcelContext;
 import com.sckw.excel.annotation.ExcelSelected;
 import com.sckw.excel.annotation.ExcelSelected;
-import com.sckw.excel.config.easyexcel.ExcelSelectedResolve;
-import com.sckw.excel.config.easyexcel.LocalDateTimeConverter;
-import com.sckw.excel.config.easyexcel.RowWriteHandlerImpl;
-import com.sckw.excel.config.easyexcel.SelectedSheetWriteHandler;
+import com.sckw.excel.config.easyexcel.*;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.util.Assert;
 import org.springframework.util.Assert;
@@ -30,7 +26,6 @@ import java.time.LocalDateTime;
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
-import java.util.Properties;
 
 
 
 
 /**
 /**
@@ -43,14 +38,24 @@ import java.util.Properties;
  */
  */
 @Slf4j
 @Slf4j
 public class ExcelUtil {
 public class ExcelUtil {
-
+    /**
+     * 数据导出
+     *
+     * @param response
+     * @param clazz
+     * @param data
+     * @param <T>
+     */
     public static <T> void downData(HttpServletResponse response, Class<T> clazz, List<T> data) {
     public static <T> void downData(HttpServletResponse response, Class<T> clazz, List<T> data) {
         Assert.notNull(clazz, "clazz can't be null");
         Assert.notNull(clazz, "clazz can't be null");
         Assert.isTrue(data != null && !data.isEmpty(), "data can't be empty");
         Assert.isTrue(data != null && !data.isEmpty(), "data can't be empty");
         try {
         try {
             ExcelContext excelContext = clazz.getAnnotation(ExcelContext.class);
             ExcelContext excelContext = clazz.getAnnotation(ExcelContext.class);
             buildResponse(response, excelContext.fileName());
             buildResponse(response, excelContext.fileName());
-            EasyExcel.write(response.getOutputStream(), clazz).autoCloseStream(Boolean.FALSE).sheet(excelContext.sheetName()).doWrite(data);
+            EasyExcel.write(response.getOutputStream(), clazz)
+                    .autoCloseStream(Boolean.FALSE)
+                    .registerConverter(new LongStringConverter())
+                    .sheet(excelContext.sheetName()).doWrite(data);
         } catch (Exception e) {
         } catch (Exception e) {
             buildResponse(response, e);
             buildResponse(response, e);
         }
         }