Когда Excel помещает 105% в ячейку, он на самом деле сохраняет числовое значение (с плавающей запятой) 1,05 вместе со строкой форматирования
Когда вы запрашиваете POI дать вам значение ячейки,он предоставит значение, которое Excel написал для вас, в вашем случае 1.05
POI также имеет классы, которые пытаются форматировать ячейки на основе примененных к ним строк форматирования, чтобы вернуть строку, значение которой показано в Excel(или, по крайней мере, очень близко к этому).Класс для этого: DataFormatter
Мудрый код, вы бы хотели что-то вроде этого:
// Create a formatter, do this once
DataFormatter formatter = new DataFormatter(Locale.US);
.....
for(Cell cell : row) {
CellReference ref = new CellReference(cell);
// eg "The value of B12 is 12.4%"
System.out.println("The value of " + ref.formatAsString() + " is " + formatter.formatCellValue(cell));
}
То есть ячейка A1 содержала 105% в Excel, сохраненокак 1,05, выведите «Значение А1 составляет 105%»