verou
2025-03-21 242bcd15240d652874a9b19823d2ef3ed1f90347
rsf-server/src/main/java/com/vincent/rsf/server/common/utils/ExcelUtil.java
@@ -2,12 +2,9 @@
import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.vincent.rsf.framework.common.Cools;
import com.vincent.rsf.framework.common.SpringUtils;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.manager.entity.Matnr;
import com.vincent.rsf.server.manager.entity.excel.MatnrsTemplate;
import com.vincent.rsf.server.manager.entity.excel.annotation.ExcelComment;
import com.vincent.rsf.server.system.entity.Fields;
@@ -16,7 +13,6 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.formula.functions.T;
import org.apache.poi.ss.usermodel.*;
import javax.servlet.http.HttpServletResponse;
@@ -143,69 +139,10 @@
    public static ImportParams getDefaultImportParams() {
        ImportParams importParams = new ImportParams();
        importParams.setTitleRows(0);
//        importParams.setNeedVerify(true);
        importParams.setHeadRows(1);
        importParams.setSheetNum(1);
        return importParams;
    }
    /**
     * @author Ryan
     * @description Excel导出Map格式表格
     * @param
     * @return
     * @time 2025/3/18 09:30
     */
    public static void exportForMap(HttpServletResponse response, Class cls, String fileName, List<List<Object>> data) {
        try {
            response.setContentType("application/octet-stream; charset=utf-8");
            response.setCharacterEncoding("utf-8");
            String name = URLEncoder.encode(fileName, "UTF-8");
            response.setHeader("Content-disposition", "attachment;filename=" + name + ".xlsx");
            EasyExcel.write(response.getOutputStream()).head(getHeader(cls)).sheet().doWrite(null);
        } catch (IOException exception) {
            exception.printStackTrace();
        }
    }
    /**
     * @author Ryan
     * @description excel导出map模式
     * @param  Class<T> 模板类型
     * @return  List<List<String>> 表头信息
     * @time 2025/3/18 09:26
     */
    public static List<List<String>> getHeader(Class<T> t) {
        List<List<String>> headList = new ArrayList<List<String>>();
        if (t.getSuperclass().isInstance(MatnrsTemplate.class)) {
            Field[] allFields = Cools.getAllFields(t);
            if (Objects.isNull(allFields) ||  allFields.length < 1) {
                throw new CoolException("模板列不能为空!!");
            }
            for (Field field : allFields) {
                List<String> list = new ArrayList<String>();
                String fieldName = "";
                if (field.isAnnotationPresent(Excel.class)){
                    fieldName = field.getAnnotation(Excel.class).name();
                }
                list.add(field.getName());
                headList.add(list);
            }
            FieldsService itemService = SpringUtils.getBean(FieldsService.class);
            List<Fields> sysFields = itemService.list(new LambdaQueryWrapper<Fields>()
                    .eq(Fields::getStatus, 1)
                    .eq(Fields::getFlagEnable, 1));
            //添加扩展字段别名
            if (!sysFields.isEmpty()) {
                sysFields.forEach(fields1 -> {
                    List<String> list = new ArrayList<String>();
                    list.add(fields1.getFieldsAlise());
                    headList.add(list);
                });
            }
        }
        return headList;
    }
    /**