package org.springblade.common.excel; import com.alibaba.excel.converters.Converter; import com.alibaba.excel.enums.CellDataTypeEnum; import com.alibaba.excel.metadata.CellData; import com.alibaba.excel.metadata.GlobalConfiguration; import com.alibaba.excel.metadata.property.ExcelContentProperty; import org.springblade.common.utils.SpringUtils; import org.springblade.modules.system.entity.DictBiz; import org.springblade.modules.system.service.IDictBizService; import org.springframework.stereotype.Component; import java.lang.reflect.Field; import java.util.List; /** * 字典映射 * * @author zhongrj * @date 2023-11-17 */ @Component public class ExcelDictConverter implements Converter { @Override public Class supportJavaTypeKey() { return Integer.class; } @Override public CellDataTypeEnum supportExcelTypeKey() { return CellDataTypeEnum.STRING; } @Override public String convertToJavaData(CellData cellData, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception { return null; } /** * java 导出到 excel * @param dictValue * @param excelContentProperty * @param globalConfiguration * @return * @throws Exception */ @Override public CellData convertToExcelData(String dictValue, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception { // 获取字典类型 Field field = excelContentProperty.getField(); ExcelDictItem excel = field.getAnnotation(ExcelDictItem.class); String dictType = excel.type(); IDictBizService dictBizService = SpringUtils.getBean(IDictBizService.class); List list = dictBizService.getList(dictType); String value = ""; //解析返回 for (DictBiz dictBiz : list) { if (dictBiz.getDictKey().equals(dictValue)){ value = dictBiz.getDictValue(); } } return new CellData(value); } }