Я пытаюсь загрузить и прочитать содержимое файла Excel. Он отлично работает, если содержимое находится в формате String. Но мое содержание в файле первенствовать выглядит следующим образом:Прочитать файл Excel без изменения его содержимого
02:02:02
03:03:03
04:04:04
Все, что я хочу сделать, это извлечь содержимое, как это. Но когда я тяну эти данные снова, я в конечном итоге получить содержание следующим образом:
8.4745370370370374E-2
0.12711805555555555
0.169490740740741
Есть ли какой-нибудь способ, чтобы не изменить содержание?
while (rowIterator.hasNext())
{
Row row = rowIterator.next();
//For each row, iterate through all the columns
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext())
{
Cell cell = cellIterator.next();
cell.setCellType(Cell.CELL_TYPE_STRING);
//Check the cell type and format accordingly
switch (cell.getCellType())
{
case Cell.CELL_TYPE_NUMERIC:
System.out.print(cell.getNumericCellValue());
break;
case Cell.CELL_TYPE_STRING:
System.out.print(cell.getStringCellValue());
break;
}
}
}
вы не изменяя содержимое на чтение, это просто, что Excel является «форматирование», когда вы смотрите на него в Excel. См. Также этот вопрос: http://stackoverflow.com/questions/3014803/apache-poi-time-cell –
@RC. В этом файле нет никаких формул. Просто данные, введенные, как указано выше. Так что я должен решить это на листе excel, прежде чем даже прочитать его? Основываясь на этой ссылке, кажется, POI предполагает, что это какой-то формат даты, но в моем случае это 02:03:04, т. Е.: 2 минуты 3 секунды 4 milisecs. – kar
Я ничего не говорил о формулах; отформатированное время - это число в excel, попробуйте следующее: в следующем типе ячейки '= + 0' (и прочитайте ответ связанного вопроса). Если вы можете изменить файл Excel, вы можете заставить Excel «использовать текст», используя '' 02: 03: 04' (обратите внимание на основную цитату) –