Browse Source

导出excel枚举

master
刘忱 2 years ago
parent
commit
427b4eed19
  1. 19
      win-framework/win-common/src/main/java/com/win/framework/common/enums/CommonStatusEnum.java
  2. 34
      win-framework/win-spring-boot-starter-excel/src/main/java/com/win/framework/excel/core/convert/CommonStatusConverter.java
  3. 6
      win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/user/UserController.java
  4. 5
      win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/user/vo/user/UserExcelVO.java

19
win-framework/win-common/src/main/java/com/win/framework/common/enums/CommonStatusEnum.java

@ -5,6 +5,7 @@ import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.stream.Stream;
/**
* 通用状态枚举
@ -34,4 +35,22 @@ public enum CommonStatusEnum implements IntArrayValuable {
return ARRAYS;
}
public static CommonStatusEnum convert(Integer value) {
return Stream.of(values())
.filter(bean -> bean.status.equals(value))
.findAny()
.orElse(DISABLE);
}
public static CommonStatusEnum convert(String description) {
return Stream.of(values())
.filter(bean -> bean.name.equals(description))
.findAny()
.orElse(DISABLE);
}
public static String[] getStatusNameArray() {
return Stream.of(values()).map(CommonStatusEnum::getName).toArray(String[]::new);
}
}

34
win-framework/win-spring-boot-starter-excel/src/main/java/com/win/framework/excel/core/convert/CommonStatusConverter.java

@ -0,0 +1,34 @@
package com.win.framework.excel.core.convert;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.converters.ReadConverterContext;
import com.alibaba.excel.converters.WriteConverterContext;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.win.framework.common.enums.CommonStatusEnum;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class CommonStatusConverter implements Converter<Object> {
@Override
public Class<?> supportJavaTypeKey() {
throw new UnsupportedOperationException("暂不支持,也不需要");
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
throw new UnsupportedOperationException("暂不支持,也不需要");
}
@Override
public Integer convertToJavaData(ReadConverterContext<?> context) {
return CommonStatusEnum.convert(context.getReadCellData().getStringValue()).getStatus();
}
@Override
public WriteCellData<Object> convertToExcelData(WriteConverterContext<Object> context) {
return new WriteCellData<>(CommonStatusEnum.convert(Integer.parseInt(String.valueOf(context.getValue()))).getName());
}
}

6
win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/user/UserController.java

@ -158,9 +158,11 @@ public class UserController {
});
excelUsers.add(excelVO);
});
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] statusNameArray = CommonStatusEnum.getStatusNameArray();
mapDropDown.put(6, statusNameArray);
// 输出
ExcelUtils.write(response, "用户数据.xlsx", "用户列表", UserExcelVO.class, excelUsers);
ExcelUtils.write(response, "用户数据.xlsx", "用户列表", UserExcelVO.class, excelUsers, mapDropDown);
}
@GetMapping("/get-import-template")

5
win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/user/vo/user/UserExcelVO.java

@ -1,6 +1,7 @@
package com.win.module.system.controller.user.vo.user;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.CommonStatusConverter;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.system.enums.DictTypeConstants;
import com.alibaba.excel.annotation.ExcelProperty;
@ -33,8 +34,8 @@ public class UserExcelVO {
@DictFormat(DictTypeConstants.USER_SEX)
private Integer sex;
@ExcelProperty(value = "帐号状态", converter = DictConvert.class)
@DictFormat(DictTypeConstants.COMMON_STATUS)
@ExcelProperty(value = "帐号状态", converter = CommonStatusConverter.class)
//@DictFormat(DictTypeConstants.COMMON_STATUS)
private Integer status;
@ExcelProperty("最后登录IP")

Loading…
Cancel
Save