Commit fa99e9658b6e74ddb1129805b68b2758f5469f0b

Authored by dadiyang
1 parent 8e43004c

fix(excel):导入模板下拉框对空字典/空选项源整列跳过数据验证——不再拼出 $F$1:$F$0 非法区间致 POI FormulaParseExcept…

…ion 500(A43,框架层单点修复惠及所有模板)
yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/handler/SelectSheetWriteHandler.java
... ... @@ -133,6 +133,11 @@ public class SelectSheetWriteHandler implements SheetWriteHandler {
133 133 DataValidationHelper helper = writeSheetHolder.getSheet().getDataValidationHelper(); // 需要设置下拉框的 sheet 页的数据验证助手
134 134 Workbook workbook = writeWorkbookHolder.getWorkbook(); // 获得工作簿
135 135 List<KeyValue<Integer, List<String>>> keyValues = convertList(selectMap.entrySet(), entry -> new KeyValue<>(entry.getKey(), entry.getValue()));
  136 + // 空字典/空选项源:跳过该列下拉,避免拼出 $F$1:$F$0 非法区间致 POI FormulaParseException(该列退化为普通文本列)
  137 + keyValues.removeIf(item -> CollUtil.isEmpty(item.getValue()));
  138 + if (CollUtil.isEmpty(keyValues)) {
  139 + return; // 全部为空时连「字典sheet」都不创建
  140 + }
136 141 keyValues.sort(Comparator.comparing(item -> item.getValue().size())); // 升序不然创建下拉会报错
137 142  
138 143 // 2. 创建数据字典的 sheet 页
... ...