mirror of
https://gitee.com/dromara/hutool.git
synced 2025-04-05 17:37:59 +08:00
fix select bug
This commit is contained in:
parent
b6fd1e2beb
commit
9a68d4299f
@ -14,6 +14,7 @@
|
||||
|
||||
### Bug修复
|
||||
* 【core 】 修复NumberWordFormatter拼写错误(issue#799@Github)
|
||||
* 【poi 】 修复xls文件下拉列表无效问题(issue#I1C79P@Gitee)
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
## 5.2.4
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -419,9 +419,9 @@ public class ExcelWriteTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
// @Ignore
|
||||
public void addSelectTest2() {
|
||||
ExcelWriter writer = ExcelUtil.getWriter(true);
|
||||
ExcelWriter writer = ExcelUtil.getWriter("d:/test/select.xls");
|
||||
writer.writeCellValue(0, 0, "请选择科目");
|
||||
int firstRow = 0;
|
||||
int lastRow = 0;
|
||||
@ -433,7 +433,6 @@ public class ExcelWriteTest {
|
||||
List<?> rows = new ArrayList<>();
|
||||
writer.write(rows, true);
|
||||
|
||||
writer.flush(FileUtil.file("d:/test/select.xlsx"));
|
||||
writer.close();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user