2015-01-08 3 views
2

SetCellType(HSSFCELL.CELL_TYPE_NUMERIC) не работает в apache poi. Кто-нибудь использовал эту функцию POI в JAVA?setCellType (HSSFCELL.CELL_TYPE_NUMERIC) не работает в apache poi

Когда я создал файл XLS с использованием POI, а ячейка содержит целочисленное значение, и я установил тип ячейки как числовое в то время, когда ячейка отражает некоторое другое целочисленное значение. Пример: Использование программы JAVA и утилиты poi, я помещаю в Cell A1 значение "5". Теперь эта ячейка содержит значение Integer, но по умолчанию тип ячейки - CELL_TYPE_STRING. Итак, эта ячейка дает мне ошибку и попросила меня преобразовать эту ячейку в Number. Но используя программу, когда я установил этот тип ячейки как CELL_TYPE_NUMERIC, в это время она не дает мне ошибку в файле XLS, но она показывает мне различное значение.

Кто-нибудь сталкивался с такой проблемой? Если да, то есть ли какое-либо решение для этого. Я застрял с этим.

Пожалуйста, спросите меня, нужно ли вам разъяснения.

Заранее благодарен.

+0

Расширение имеет мало общего с этой проблемой. Однако тип файла делает. Вы можете создать документ Excel 2012 и сохранить его с помощью .XLS вместо .XSLS, но это будет формат Excel 2012. Вы должны убедиться, что используете подходящие классы (XSSF против HSSF) в зависимости от типа файла, который вы обрабатываете. – hfontanez

+2

Если у вас есть целочисленное значение, почему вы не устанавливаете его как значение ячейки? Почему вы проходите через строку? – Gagravarr

ответ

1

Поскольку вы используете XSSF не HSSF, используйте cell.setCellType(XSSFCell.CELL_TYPE_NUMERIC) вместо setCellType(HSSFCELL.CELL_TYPE_NUMERIC).

+0

Это, скорее всего, проблема, но откуда вы знаете, что OP использует XSSF? – hfontanez

+0

Он отметил вопрос как 'XSSF'. – Akshay

+0

Не видел этого. – hfontanez

0

** Дайте значение Integer вместо строки значение. **

HSSFCell cell = row.createCell(col); 
cell.setCellStyle(style); 
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC); 
if(value!=null) 
    cell.setCellValue(Integer.parseInt(value));