正在显示
1 个修改的文件
包含
5 行增加
和
2 行删除
| @@ -22,6 +22,7 @@ import java.util.Set; | @@ -22,6 +22,7 @@ import java.util.Set; | ||
| 22 | import java.util.UUID; | 22 | import java.util.UUID; |
| 23 | import java.util.stream.Collectors; | 23 | import java.util.stream.Collectors; |
| 24 | import javax.servlet.http.HttpServletResponse; | 24 | import javax.servlet.http.HttpServletResponse; |
| 25 | +import org.apache.commons.lang3.RegExUtils; | ||
| 25 | import org.apache.poi.hssf.usermodel.HSSFClientAnchor; | 26 | import org.apache.poi.hssf.usermodel.HSSFClientAnchor; |
| 26 | import org.apache.poi.hssf.usermodel.HSSFPicture; | 27 | import org.apache.poi.hssf.usermodel.HSSFPicture; |
| 27 | import org.apache.poi.hssf.usermodel.HSSFPictureData; | 28 | import org.apache.poi.hssf.usermodel.HSSFPictureData; |
| @@ -88,6 +89,8 @@ public class ExcelUtil<T> | @@ -88,6 +89,8 @@ public class ExcelUtil<T> | ||
| 88 | { | 89 | { |
| 89 | private static final Logger log = LoggerFactory.getLogger(ExcelUtil.class); | 90 | private static final Logger log = LoggerFactory.getLogger(ExcelUtil.class); |
| 90 | 91 | ||
| 92 | + public static final String FORMULA_REGEX_STR = "=|-|\\+|@"; | ||
| 93 | + | ||
| 91 | public static final String[] FORMULA_STR = { "=", "-", "+", "@" }; | 94 | public static final String[] FORMULA_STR = { "=", "-", "+", "@" }; |
| 92 | 95 | ||
| 93 | /** | 96 | /** |
| @@ -714,9 +717,9 @@ public class ExcelUtil<T> | @@ -714,9 +717,9 @@ public class ExcelUtil<T> | ||
| 714 | { | 717 | { |
| 715 | String cellValue = Convert.toStr(value); | 718 | String cellValue = Convert.toStr(value); |
| 716 | // 对于任何以表达式触发字符 =-+@开头的单元格,直接使用tab字符作为前缀,防止CSV注入。 | 719 | // 对于任何以表达式触发字符 =-+@开头的单元格,直接使用tab字符作为前缀,防止CSV注入。 |
| 717 | - if (StringUtils.containsAny(cellValue, FORMULA_STR)) | 720 | + if (StringUtils.startsWithAny(cellValue, FORMULA_STR)) |
| 718 | { | 721 | { |
| 719 | - cellValue = StringUtils.replaceEach(cellValue, FORMULA_STR, new String[] { "\t=", "\t-", "\t+", "\t@" }); | 722 | + cellValue = RegExUtils.replaceFirst(cellValue, FORMULA_REGEX_STR, "\t$0"); |
| 720 | } | 723 | } |
| 721 | cell.setCellValue(StringUtils.isNull(cellValue) ? attr.defaultValue() : cellValue + attr.suffix()); | 724 | cell.setCellValue(StringUtils.isNull(cellValue) ? attr.defaultValue() : cellValue + attr.suffix()); |
| 722 | } | 725 | } |
-
请 注册 或 登录 后发表评论