我试着用java读取excel文件。读取整数时,数据是否读取为浮点y? XSSFSheet sheet=workbook.getSheetAt(0); //逐个遍历每一行 /*迭代器rowIterator=sheet.rowIterator(); while(roweiterator.hasNext()) { 行=(行)行迭代器。下一步(); //对于每一行,遍历所有列 迭代器cellIterator=row.cellIterator(); while(cellIterator.hasNext()) { Cell Cell=(Cell)cellIterator.next()*/ 迭代器rowIterator=sheet.Iterator(); while(roweiterator.hasNext()){ 行=行迭代器。下一步(); 迭代器cellIterator=row.cellIterator(); while(cellIterator.hasNext()){ Cell=cellIterator.next(); //检查相应的单元格类型和格式 //DataFormat format=((XSSF工作簿)单元格).createDataFormat(); 开关(cell.getCellType()) { case Cell.Cell\u类型\u数值: System.out.print(cell.getNumericCellValue()+“\t”); 打破 case Cell.Cell\u类型\u字符串: System.out.print(cell.getStringCellValue()+“\t”); } } System.out.println(“”); } file.close(); }

我试着用java读取excel文件。读取整数时,数据是否读取为浮点y? XSSFSheet sheet=workbook.getSheetAt(0); //逐个遍历每一行 /*迭代器rowIterator=sheet.rowIterator(); while(roweiterator.hasNext()) { 行=(行)行迭代器。下一步(); //对于每一行,遍历所有列 迭代器cellIterator=row.cellIterator(); while(cellIterator.hasNext()) { Cell Cell=(Cell)cellIterator.next()*/ 迭代器rowIterator=sheet.Iterator(); while(roweiterator.hasNext()){ 行=行迭代器。下一步(); 迭代器cellIterator=row.cellIterator(); while(cellIterator.hasNext()){ Cell=cellIterator.next(); //检查相应的单元格类型和格式 //DataFormat format=((XSSF工作簿)单元格).createDataFormat(); 开关(cell.getCellType()) { case Cell.Cell\u类型\u数值: System.out.print(cell.getNumericCellValue()+“\t”); 打破 case Cell.Cell\u类型\u字符串: System.out.print(cell.getStringCellValue()+“\t”); } } System.out.println(“”); } file.close(); },java,Java,这里我得到的输出是 Id名称电话 1.0桑杰8220850855 2.0阿斯温9.897654321E9 3.0桑托什9.876543212E9 4.0南都9.089876565E9 5.0 Vijay 9.090906767E9当您转到javadoc查找方法时,您会发现:它返回double [请注意:这是Java。您不能调用一个相同的方法,并期望它在一次调用中返回int;在另一次调用中返回double!只有将该方法编写为返回一个Number对象时才有可能;那么结果可能是整数或双精度。但对于基本

这里我得到的输出是

Id名称电话
1.0桑杰8220850855
2.0阿斯温9.897654321E9
3.0桑托什9.876543212E9
4.0南都9.089876565E9

5.0 Vijay 9.090906767E9

当您转到javadoc查找方法时,您会发现:它返回double

[请注意:这是Java。您不能调用一个相同的方法,并期望它在一次调用中返回int;在另一次调用中返回double!只有将该方法编写为返回一个Number对象时才有可能;那么结果可能是整数双精度。但对于基本类型,这是不可能的!]

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

因此:当您知道第一列仅与整数有关时;那么,您就必须使“隐式”理解显式化;例如,通过舍入/格式化第一列的值

换言之:价值就是它的本质。你必须改变对该价值的解释;基于你对所处理数据的元知识

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


当您使用javadoc查找方法时,您会发现:它返回double

[请注意:这是Java。您不能调用一个相同的方法,并期望它在一次调用中返回int;在另一次调用中返回double!只有将该方法编写为返回一个Number对象时才有可能;那么结果可能是整数双精度。但对于基本类型,这是不可能的!]

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

因此:当您知道第一列仅与整数有关时;那么,您就必须使“隐式”理解显式化;例如,通过舍入/格式化第一列的值

换言之:价值就是它的本质。你必须改变对该价值的解释;基于你对所处理数据的元知识

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


是否将整型数据读取为int?您可以尝试将其读取为字符串,然后将其解析为所需类型提示:请就我的答案提供一些反馈。如果有帮助,您可以接受;否则,如果您有进一步的问题,请随时通知我。是否将整型数据读取为int?您可以尝试将其读取为int字符串,然后将其解析为所需的类型提示:请就我的答案提供一些反馈。如果有帮助,您可以接受;否则,如果您有进一步的问题,请随时告诉我。
       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();
    }