package com.mindskip.xzs.excel; import com.alibaba.excel.metadata.Head; import com.alibaba.excel.metadata.data.WriteCellData; import com.alibaba.excel.write.handler.AbstractCellWriteHandler; import com.alibaba.excel.write.handler.CellWriteHandler; import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; import com.alibaba.excel.write.metadata.holder.WriteTableHolder; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellRangeAddressList; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * 设置easy-excel下拉处理器 * * @author:xp * @date:2024/3/15 17:27 */ public class SelectExcel implements CellWriteHandler { private String[] questionTypeList = {"单选", "多选", "判断"}; private String[] subjectTypeList = {"a","b"}; @Override public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, List> cellDataList, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) { // 获取sheet对象 Sheet sheet = writeSheetHolder.getSheet(); // 获取数据校验helper DataValidationHelper dataValidationHelper = sheet.getDataValidationHelper(); // 设置题目下拉范围,第一列,500行内 CellRangeAddressList questionTypeRange = new CellRangeAddressList(0, 500, 0, 0); // 添加题目下拉 DataValidationConstraint questionConstraint = dataValidationHelper.createExplicitListConstraint(questionTypeList); DataValidation questionValidation = dataValidationHelper.createValidation(questionConstraint, questionTypeRange); sheet.addValidationData(questionValidation); // 设置课目下拉范围,第2列,500行内 CellRangeAddressList subjectTypeRange = new CellRangeAddressList(0, 500, 1, 1); // 添加课目下拉 DataValidationConstraint subjectConstraint = dataValidationHelper.createExplicitListConstraint(subjectTypeList); DataValidation subjectValidation = dataValidationHelper.createValidation(subjectConstraint, subjectTypeRange); sheet.addValidationData(subjectValidation); } }