Нужно описание
Мне нужно создать выпадающий список в 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:
Мы обнаружили проблему с некоторым содержимым в 'файле .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
, все значения правильно отображаются в консоли.