Как получить отформатированное значение числа для ячейки в Apache POI? - PullRequest
4 голосов
/ 29 сентября 2010

Я хотел получить значение числовой ячейки в виде простой строки.

Предположим, что тип ячейки числовой со значением 90%. Теперь я не могу использовать cell.getStringCellValue(), поскольку это вызовет исключение. Я также не могу использовать cell.getNumericCellValue(), так как он вернет мне .9, а не 90%.

Я хочу хранить в db типа varchar2, поэтому я хочу, чтобы значение было только в строке.

Я не могу изменить тип ячейки в xls как задание конечного пользователя, я должен обработать это в самом коде.

Также форматтер не работает должным образом, поскольку в xls могут быть разные типы ячеек ... дд: мм, дд: мм: сс, формула и т. Д.

Все, что мне нужно, это то, что независимо от типа ячейки, мне нужно получить ее значение в виде простой строки.

Ответы [ 2 ]

3 голосов
/ 29 сентября 2010

Вы можете принудительно вернуть значение в виде строки, используя методы ниже

HSSFDataFormatter hdf = new HSSFDataFormatter();
System.out.println (hdf.formatCellValue(mycell));

вернет "90%"

API для этого метода - http://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/DataFormatter.html#formatCellValue%28org.apache.poi.ss.usermodel.Cell%29

Это работает напрямую даже с HSSFCell

, оно работало для меня, даже когда моя ячейка - HSSFCell

Я также пробовал этот каст - что работает.1014 *

1 голос
/ 29 сентября 2010

Попробуйте

cell.getRichStringCellValue ().getString();    

Посмотрите на этот пример
Вот документ

...