2014-08-27 3 views
0

Я пытаюсь прочитать ячейку Excel, которая может иметь следующие форматы:Попытка прочитать Excel ячейку текста с Java Apache POI

087 
098 
057 
044 

Я пытаюсь сделать следующее:

workbookSheet.getRow(row).getCell(columnItemId.getIndex()).setCellType(Cell.CELL_TYPE_STRING); 
String cell = workbookSheet.getRow(row).getCell(columnItemId.getIndex()) 
          .getStringCellValue(); 

Проблема в том, что я получаю номер без нуля, например 87 вместо 087.

Кто-нибудь решил что-то подобное?

ответ

2

Значение, полученное из числовой ячейки, является числовым, double, которое не имеет информации о форматировании, такой как начальные нули. Метод getStringCellValue преобразует double в String, но на нем никогда не было начального нуля.

Чтобы получить строку, которая представляет, как ячейка отформатирована в Excel, вы можете использовать класс DataFormatter Apache POI.

DataFormatter df = new DataFormatter(); 
String text = df.formatCellValue(cell); 

Это вы должны получить строковое значение, как Excel делает его в клетке, в соответствии с форматированием, присутствующей на клетке.

+0

Спасибо, он отлично работает! – user3444135

Смежные вопросы