【发布时间】:2020-03-06 07:19:45
【问题描述】:
需要说明
我需要在 Excel 中使用Apache POI 创建一个下拉列表。此列表应包含字符串。
代码
XSSFSheet sheet = workbook.getSheet(fieldName.getTabName());
XSSFDataValidationHelper helper = new XSSFDataValidationHelper(sheet);
XSSFDataValidationConstraint dvConstraint = (XSSFDataValidationConstraint) helper.createExplicitListConstraint(myarray);
CellRangeAddressList addressList = new CellRangeAddressList(3, 10, 5, 5);
XSSFDataValidation validation = (XSSFDataValidation) helper.createValidation(dvConstraint, addressList);
validation.setEmptyCellAllowed(false);
validation.setShowErrorBox(true);
sheet.addValidationData(validation);
错误
对于某些内容,它运行良好。但是如果数组myarray 包含一些值,例如STUDENT 或HOUSE, DEF,当我想打开 Excel 时就会出错:
我们发现“file.xlsx”中的某些内容存在问题。你想让我们尽可能多地恢复吗?如果您信任工作簿的来源,请单击“是”。
其他信息
my array 是 List<WebElement>。我得到了这份清单:
Select select = new Select(By.xpath("myxpath"));
List<WebElement> opt = select.getOptions();
myarray = new String[opt.size()];
for(int i = 0; i < opt.size(); i++)
myarray[i] = opt.get(i).getText();
但我认为这段代码不是问题,因为我可以获得所有带有相关文本的选项。就是当我把这个内容放到createExplicitListConstraint 时,奇怪的事情发生了。
当我打印myarray的内容时,所有值都正确显示在控制台中。
【问题讨论】:
标签: java excel apache-poi