|
|
@@ -15,20 +15,18 @@ import cn.hutool.core.util.URLUtil;
|
|
|
import cn.hutool.poi.excel.cell.CellLocation;
|
|
|
import cn.hutool.poi.excel.cell.CellUtil;
|
|
|
import cn.hutool.poi.excel.style.Align;
|
|
|
-import org.apache.poi.hssf.usermodel.DVConstraint;
|
|
|
-import org.apache.poi.hssf.usermodel.HSSFDataValidation;
|
|
|
import org.apache.poi.ss.usermodel.Cell;
|
|
|
import org.apache.poi.ss.usermodel.CellStyle;
|
|
|
import org.apache.poi.ss.usermodel.DataValidation;
|
|
|
+import org.apache.poi.ss.usermodel.DataValidationConstraint;
|
|
|
+import org.apache.poi.ss.usermodel.DataValidationHelper;
|
|
|
import org.apache.poi.ss.usermodel.Font;
|
|
|
import org.apache.poi.ss.usermodel.HeaderFooter;
|
|
|
import org.apache.poi.ss.usermodel.Row;
|
|
|
import org.apache.poi.ss.usermodel.Sheet;
|
|
|
import org.apache.poi.ss.usermodel.Workbook;
|
|
|
import org.apache.poi.ss.util.CellRangeAddressList;
|
|
|
-import org.apache.poi.xssf.usermodel.XSSFDataValidationConstraint;
|
|
|
-import org.apache.poi.xssf.usermodel.XSSFDataValidationHelper;
|
|
|
-import org.apache.poi.xssf.usermodel.XSSFSheet;
|
|
|
+import org.apache.poi.xssf.usermodel.XSSFDataValidation;
|
|
|
|
|
|
import java.io.File;
|
|
|
import java.io.IOException;
|
|
|
@@ -569,22 +567,20 @@ public class ExcelWriter extends ExcelBase<ExcelWriter> {
|
|
|
* @since 4.6.2
|
|
|
*/
|
|
|
public ExcelWriter addSelect(CellRangeAddressList regions, String... selectList) {
|
|
|
- final DVConstraint constraint = DVConstraint.createExplicitListConstraint(selectList);
|
|
|
-
|
|
|
- // 绑定
|
|
|
- DataValidation dataValidation;
|
|
|
-
|
|
|
- if(this.sheet instanceof XSSFSheet) {
|
|
|
- final XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper((XSSFSheet)sheet);
|
|
|
- final XSSFDataValidationConstraint dvConstraint = (XSSFDataValidationConstraint) dvHelper.createExplicitListConstraint(selectList);
|
|
|
- dataValidation = dvHelper.createValidation(dvConstraint, regions);
|
|
|
- } else {
|
|
|
- dataValidation = new HSSFDataValidation(regions, constraint);
|
|
|
+ final DataValidationHelper validationHelper = this.sheet.getDataValidationHelper();
|
|
|
+ final DataValidationConstraint constraint = validationHelper.createExplicitListConstraint(selectList);
|
|
|
+
|
|
|
+ //设置下拉框数据
|
|
|
+ final DataValidation dataValidation = validationHelper.createValidation(constraint, regions);
|
|
|
+
|
|
|
+ //处理Excel兼容性问题
|
|
|
+ if(dataValidation instanceof XSSFDataValidation) {
|
|
|
+ dataValidation.setSuppressDropDownArrow(true);
|
|
|
+ dataValidation.setShowErrorBox(true);
|
|
|
+ }else {
|
|
|
+ dataValidation.setSuppressDropDownArrow(false);
|
|
|
}
|
|
|
-
|
|
|
- dataValidation.setSuppressDropDownArrow(true);
|
|
|
- dataValidation.setShowErrorBox(true);
|
|
|
-
|
|
|
+
|
|
|
return addValidationData(dataValidation);
|
|
|
}
|
|
|
|