powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Чтение из Excel-файла. Apache POI
6 сообщений из 6, страница 1 из 1
Чтение из Excel-файла. Apache POI
    #34589399
Quessir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могу прочесть из Excel-овского файла.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
 private  List<String> dateArray;
 private  List<String> inventory;
 private   int  i =  0 ;
 public  FromExcel()  throws  IOException {
	POIFSFileSystem fs =  new  POIFSFileSystem( new  FileInputStream(
			"C:\\test1.xls"));
	HSSFWorkbook wb =  new  HSSFWorkbook(fs);

	HSSFSheet sheet = wb.getSheetAt( 0 );
	HSSFRow row = sheet.getRow(i);
	HSSFCell cell1 = row.getCell(( short )  1 );
	cell1.setCellType(HSSFCell.CELL_TYPE_STRING);
	dateArray.add(cell1.getRichStringCellValue().getString());
	HSSFCell cell2 = row.getCell(( short )  2 );
	inventory.add(cell2.getRichStringCellValue().getString());

	}

И стэк.

Код: plaintext
1.
2.
java.lang.NumberFormatException: You cannot get a string value from a numeric cell
	at org.apache.poi.hssf.usermodel.HSSFCell.getRichStringCellValue(HSSFCell.java: 734 )
	at kz.kbtu.dit.util.poi.excel.FromExcel.<init>(FromExcel.java: 37 )


Нигде не нашел примера или руководства по пользованию POI. Может кто знает, в чем проблема. А еще часто возникает проблема с индексаи. Начинаю с нуля, он мне НулЭксепшн выдает, С одного он мне просто выдает "Index 1, Size 1"
...
Рейтинг: 0 / 0
Чтение из Excel-файла. Apache POI
    #34590978
LongS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"numeric cell" - используй соответсвующий метод для случая numeric - getNumericCellValue().
Можно получать CellType методом getCellType() и читать в зависимости от типа.
...
Рейтинг: 0 / 0
Чтение из Excel-файла. Apache POI
    #34591792
Quessir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но я хочу прочитать ячейку как Стринг. Потому что, если я читаю как число, у ячейки слетает формат. и он мне выводит его толи округленным, толи еще что-то.
...
Рейтинг: 0 / 0
Чтение из Excel-файла. Apache POI
    #34591966
LongS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал, getNumericCellValue() читает правильно.

Если можно, скинь файл Excel, который неправильно читается на e-mail, посмотрю.
...
Рейтинг: 0 / 0
Чтение из Excel-файла. Apache POI
    #34592397
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QuessirНо я хочу прочитать ячейку как Стринг.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
String value =  null ; // здесь будет строковое значение                    

                     for  (  short  c = row.getFirstCellNum(); c <= row.getLastCellNum(); c++ ) {
                      cell = row.getCell( c );
                       if  ( cell !=  null  ) {
                         if  ( cell.getCellType() == HSSFCell.CELL_TYPE_BLANK ) {
                          value = "";
                        }  else   if  ( cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN ) {
                          value =  Boolean .toString( cell.getBooleanCellValue() );
                        }  else   if  ( cell.getCellType() == HSSFCell.CELL_TYPE_ERROR ) {
                          value =  Byte .toString( cell.getErrorCellValue() );
                        }  else   if  ( cell.getCellType() == HSSFCell.CELL_TYPE_FORMULA ) {
                          value = cell.getCellFormula().toString();
                        }  else   if  ( cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC ) {
                          value =  Double .toString( cell.getNumericCellValue() );
                        }  else   if  ( cell.getCellType() == HSSFCell.CELL_TYPE_STRING ) {
                          value = cell.getStringCellValue();
                        }
                      }
                    }
...
Рейтинг: 0 / 0
Чтение из Excel-файла. Apache POI
    #34617365
roman.abakumov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ещё вопрос, как корректно читать даты из экселя? Собственно читать их не сложно, но как узнать что в ячейке содержится именно дата?
нашел такую штуку:
if (HSSFDateUtil.isCellDateFormatted(cell)) {
if (cell.getDateCellValue() == null) {
return null;
}
s = DATE_FORMATS[0].format(cell.getDateCellValue());
}
оно вроде работает, но я так понимаю что может глючить если для даты использован нестандартный формат. Как узнать что действительно содержится в ячейке? Раньше использовал JXL там все замечательно читалось в стрингиб можно делать тоже самое в пои?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Чтение из Excel-файла. Apache POI
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]