gpt4 book ai didi

java - 我尝试用java读取excel文件。读取整数数据时读取为 float y?

转载 作者:太空宇宙 更新时间:2023-11-04 12:12:13 26 4
gpt4 key购买 nike

       XSSFSheet sheet = workbook.getSheetAt(0);

//Iterate through each rows one by one
/* Iterator<Row> rowIterator = sheet.rowIterator();
while (rowIterator.hasNext())
{
Row row = (Row)rowIterator.next();
//For each row, iterate through all the columns
Iterator<Cell> cellIterator = row.cellIterator();

while (cellIterator.hasNext())
{
Cell cell = (Cell)cellIterator.next();*/
Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator <Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
//Check the cell type and format accordingly
// DataFormat format=((XSSFWorkbook) cell).createDataFormat();
switch (cell.getCellType())
{
case Cell.CELL_TYPE_NUMERIC:
System.out.print(cell.getNumericCellValue() + "\t");
break;
case Cell.CELL_TYPE_STRING:
System.out.print(cell.getStringCellValue() + "\t");

}
}
System.out.println("");
}
file.close();
}

这里得到的输出为

ID 姓名 电话
1.0 桑杰 8220850855
2.0阿斯温9.897654321E9
3.0 桑托什 9.876543212E9
4.0 南都9.089876565E9
5.0 维杰 9.090906767E9

最佳答案

当您查阅方法 getNumericalCellValue() 的 javadoc 时你会发现:它返回double

[仅供记录:这是 Java。您不能调用同一个方法并期望它在一次调用中返回一个int;和再次调用!仅当该方法被编写为返回 Number 对象时才可能实现;那么结果可能是IntegerDouble。但对于原始类型这是不可能的! ]

所以,你的问题是你的误解:如果一个单元格有一个“数字”值;那么这意味着:您可以将单元格值作为 float 访问! “int”和“floating point”之间在该级别上没有区别。

因此:当您知道第一列仅与整数相关时;好吧,那么你就已经使这种“隐性”理解变得明确了;例如,通过舍入/格式化第一列的值!

换句话来说:值(value)就是它的本质。您必须更改该值的解释;基于您正在使用的数据的元知识!

最后:javadoc 甚至最后告诉你:

see: for turning this number into a string similar to that which Excel would render this number as

关于java - 我尝试用java读取excel文件。读取整数数据时读取为 float y?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39766187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com