Java 读取Excel文件而不更改其内容
我正在尝试上载和读取Excel文件的内容。如果内容是字符串格式,则可以正常工作。但我在excel文件中的内容如下:Java 读取Excel文件而不更改其内容,java,excel,Java,Excel,我正在尝试上载和读取Excel文件的内容。如果内容是字符串格式,则可以正常工作。但我在excel文件中的内容如下: 02:02:02 03:03:03 04:04:04 8.4745370370370374E-2 0.12711805555555555 0.169490740740741 我所要做的就是按原样检索内容。但当我把这些数据拉过来时,我得到的内容如下: 02:02:02 03:03:03 04:04:04 8.4745370370370374E-2 0.1271180555555
02:02:02
03:03:03
04:04:04
8.4745370370370374E-2
0.12711805555555555
0.169490740740741
我所要做的就是按原样检索内容。但当我把这些数据拉过来时,我得到的内容如下:
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;
}
}
}
while(roweiterator.hasNext())
{
行=行迭代器。下一步();
//对于每一行,遍历所有列
迭代器cellIterator=row.cellIterator();
while(cellIterator.hasNext())
{
Cell=cellIterator.next();
cell.setCellType(cell.cell\u TYPE\u字符串);
//检查相应的单元格类型和格式
开关(cell.getCellType())
{
case Cell.Cell\u类型\u数值:
System.out.print(cell.getNumericCellValue());
打破
case Cell.Cell\u类型\u字符串:
System.out.print(cell.getStringCellValue());
打破
}
}
}
您的单元格格式可能未设置为文本。看看这个:
如您所见,当您没有显式地将单元格类型设置为文本时,excel会尝试猜测它。因此,当您导入它时,它可能会随着时间而导入。您可以将单元格类型显式设置为Text
,然后键入时间02:02:02
,将其读取为文本,也可以将其读取为excel时间格式,然后进行转换。了解有关读取excel日期的更多信息:
您并不是在阅读时更改内容,只是当您在Excel中查看内容时,Excel正在对其进行“格式化”。另见这个问题:@RC。我在那个档案里没有任何公式。只需输入如上所述的简单数据。所以我应该在阅读之前在excel表格上解决这个问题?基于这个链接,似乎POI假设这是某种日期格式,但在我的例子中是02:03:04,即:2分3秒4毫秒。我从来没有告诉过任何关于公式的事情;格式化时间是excel中的一个数字,请尝试以下操作:在下一个单元格中键入
=+0
(并阅读链接的问题答案)。如果可以修改Excel文件,则可以通过使用'02:03:04
(注意前导引号)@RC强制Excel“使用文本”。前导引语解决了这个问题。我可以修改excel。但最终只是一个额外的过程来添加报价。试图避免它。用文字和数字试着找到链接答案。同样的问题。您是否将单元格类型更改为文本,再次键入值并在导入之前保存了文件?我的错,您是对的。我碰巧制作了一个单单元格文本,而不是所有单元格。没问题。不过,我建议你把它作为时间/日期来读。当用户填写excel表格时,他可能不会关心这些类型,而是希望您的程序处理这些类型。干杯