diff --git a/src/main/java/com/rebuild/core/service/datareport/FormulaCellWriteHandler.java b/src/main/java/com/rebuild/core/service/datareport/FormulaCellWriteHandler.java index 590b9afe0..c069681d6 100644 --- a/src/main/java/com/rebuild/core/service/datareport/FormulaCellWriteHandler.java +++ b/src/main/java/com/rebuild/core/service/datareport/FormulaCellWriteHandler.java @@ -9,6 +9,7 @@ import com.alibaba.excel.write.handler.CellWriteHandler; import com.alibaba.excel.write.handler.context.CellWriteHandlerContext; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; @@ -24,6 +25,7 @@ * @author Zixin * @since 2022/12/14 */ +@Slf4j public class FormulaCellWriteHandler implements CellWriteHandler { private static final Pattern PATT_CELLNO = Pattern.compile("([A-Z]+[0-9]+)"); @@ -47,6 +49,11 @@ private void setCellFormula(CellWriteHandlerContext context) { Set set = new HashSet<>(); while (m.find()) { String cellNo = m.group(1); + // v3.9.2 验证以防错误匹配 Gitee#IBI8UQ + if (!cellNo.matches("[A-Z]{1,2}[0-9]{1,3}")) { + log.warn("Bad cell no matches : {}", cellNo); + continue; + } // 避免多次替换出错 if (set.contains(cellNo)) continue; set.add(cellNo);