Я не знаю, слишком ли я над этим задумываюсь, но мне нужно проанализировать входной файл со столбцом, который семантически является логическим значением, но большинство наших пользователей - французы, поэтому я решил проанализировать ячейки как text и попросите пользователей ввести VRAI или FAUX (которые на французском языке - ИСТИНА и ЛОЖЬ), проблема в том, что при получении этого ввода сервер интерпретирует их как логические, потому что он работает на французском языке, и поэтому они даже приходят как ИСТИНА И ЛОЖЬ. если я попытаюсь получить значение String или использовать dataFormatter , я действительно хочу получить строки VRAI и FAUX и не интерпретировать их как логические, чтобы избежать конфликтов, если пользователь P C находится на английском языке sh или если мы когда-нибудь изменим язык сервера.
То, что я сделал сейчас, выглядит примерно так:
private void setValueFromCell(Cell cell, Person p) {
String cellValue = dataFormatter.formatCellValue(cell).trim();
CellType cellType = cell.getCellType();
if (CellType.BOOLEAN.equals(cellType)) {
p.setHelpful(cell.getBooleanCellValue());
} else if (CellType.STRING.equals(cellType) && ("VRAI".equals(cellValue) || "FAUX".equals(cellValue))) {
p.setHelpful("VRAI".equals(cellValue));
} else {
log.error("Cell value not allowed");
}
}
Я сделал это, поэтому, если местный язык французский, POI выполнит преобразование для ячейки, и я могу получить логическое значение, иначе я знаю, что это будет буквальная строка "VRAI" или "FALSE", любая помощь приветствуется