From 47cd9ecc0eff38ffe6b3b794b2bf197e958f4403 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 14 五月 2025 15:50:57 +0800
Subject: [PATCH] bug:学员有状态不能修改问题

---
 src/main/java/com/mindskip/xzs/excel/SelectExcel.java |   49 ++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 36 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/mindskip/xzs/excel/SelectExcel.java b/src/main/java/com/mindskip/xzs/excel/SelectExcel.java
index 4ad8e22..07d185b 100644
--- a/src/main/java/com/mindskip/xzs/excel/SelectExcel.java
+++ b/src/main/java/com/mindskip/xzs/excel/SelectExcel.java
@@ -2,16 +2,11 @@
 
 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;
 
 /**
@@ -22,8 +17,22 @@
  */
 public class SelectExcel implements CellWriteHandler {
 
-    private String[] questionTypeList = {"鍗曢��", "澶氶��", "鍒ゆ柇"};
-    private String[] subjectTypeList = {"a","b"};
+    /**
+     * 棰樼洰绫诲瀷
+     */
+    private String[] questionTypeList = {"鍗曢�夐", "澶氶�夐", "鍒ゆ柇棰�"};
+    /**
+     * 璇剧洰
+     */
+    private List<String> subjectNameList;
+    /**
+     * 閫夐」涓嬫媺鏁版嵁
+     */
+    private String[] optionList = {"A","B","C","D","E","F","G","H"};
+
+    public SelectExcel(List subjectNameList) {
+        this.subjectNameList = subjectNameList;
+    }
 
     @Override
     public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, List<WriteCellData<?>> cellDataList, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) {
@@ -31,23 +40,37 @@
         Sheet sheet = writeSheetHolder.getSheet();
 
 
-        // 鑾峰彇鏁版嵁鏍¢獙helper
+        // 鑾峰彇鏁版嵁鏍¢獙helper锛宔xcel鐨勪笅鎷夊氨鏄�氳繃鏁版嵁鏍¢獙璁剧疆
         DataValidationHelper dataValidationHelper = sheet.getDataValidationHelper();
 
-        // 璁剧疆棰樼洰涓嬫媺鑼冨洿锛岀涓�鍒楋紝500琛屽唴
-        CellRangeAddressList questionTypeRange = new CellRangeAddressList(0, 500, 0, 0);
+        // 璁剧疆棰樼洰涓嬫媺鑼冨洿锛岀涓�鍒楋紝1500琛屽唴
+        CellRangeAddressList questionTypeRange = new CellRangeAddressList(1, 1500, 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);
+        // 璁剧疆璇剧洰涓嬫媺鑼冨洿锛岀2鍒楋紝1500琛屽唴
+        CellRangeAddressList subjectTypeRange = new CellRangeAddressList(1, 1500, 1, 1);
         // 娣诲姞璇剧洰涓嬫媺
-        DataValidationConstraint subjectConstraint = dataValidationHelper.createExplicitListConstraint(subjectTypeList);
+        DataValidationConstraint subjectConstraint = dataValidationHelper.createExplicitListConstraint(subjectNameList.toArray((new String[0])));
         DataValidation subjectValidation = dataValidationHelper.createValidation(subjectConstraint, subjectTypeRange);
         sheet.addValidationData(subjectValidation);
 
+//        // 璁剧疆閫夐」涓嬫媺鑼冨洿锛岀4鍒楋紝1500琛屽唴
+//        CellRangeAddressList optionRange = new CellRangeAddressList(2, 1500, 3, 3);
+//        // 娣诲姞閫夐」涓嬫媺
+//        DataValidationConstraint optionConstraint = dataValidationHelper.createExplicitListConstraint(optionList);
+//        DataValidation optionValidation = dataValidationHelper.createValidation(optionConstraint, optionRange);
+//        sheet.addValidationData(optionValidation);
+
+        // 璁剧疆閫夐」涓嬫媺鑼冨洿锛岀4鍒楋紝1500琛屽唴
+        CellRangeAddressList answerRange = new CellRangeAddressList(2, 1500, 5, 5);
+        // 娣诲姞閫夐」涓嬫媺
+        DataValidationConstraint answerConstraint = dataValidationHelper.createExplicitListConstraint(optionList);
+        DataValidation answerValidation = dataValidationHelper.createValidation(answerConstraint, answerRange);
+        sheet.addValidationData(answerValidation);
+
     }
 }

--
Gitblit v1.8.0