我如何使用Java从e​​xcel中检索整数值

我的 Excel 文件有电话号码和整数,如 0772354573 和 56674,但我的输出就像 07723545E9 和 56674.0,相反,我需要我的输出像在 Excel 中定义的那样,如 0772354573 和 56674。


下面是我从外部源下载的 Getcell 数据类。


public String getCellData(String sheetName,String colName,int rowNum){

    try{

        if(rowNum <=0)

            return "";


        int index = workbook.getSheetIndex(sheetName);

        int col_Num=-1;

        if(index==-1)

            return "";


        sheet = workbook.getSheetAt(index);

        row=sheet.getRow(0);

        for(int i=0;i<row.getLastCellNum();i++){

            //System.out.println(row.getCell(i).getStringCellValue().trim());

            if(row.getCell(i).getStringCellValue().trim().equals(colName.trim()))

                col_Num=i;

        }

        if(col_Num==-1)

            return "";


        sheet = workbook.getSheetAt(index);

        row = sheet.getRow(rowNum-1);

        if(row==null)

            return "";

        cell = row.getCell(col_Num);


        if(cell==null)

            return "";

        //System.out.println(cell.getCellType());

        if(cell.getCellType()==CellType.STRING)

            return cell.getStringCellValue();

        else if(cell.getCellType()==CellType.NUMERIC || cell.getCellType()==CellType.FORMULA ){


            String cellText  = String.valueOf(cell.getNumericCellValue());

            if (HSSFDateUtil.isCellDateFormatted(cell)) {

                // format in form of M/D/YY

                double d = cell.getNumericCellValue();


                Calendar cal =Calendar.getInstance();

                cal.setTime(HSSFDateUtil.getJavaDate(d));

                cellText =

                        (String.valueOf(cal.get(Calendar.YEAR))).substring(2);

                cellText = cal.get(Calendar.DAY_OF_MONTH) + "/" +

                        cal.get(Calendar.MONTH)+1 + "/" +

                        cellText;


                //System.out.println(cellText);


            }



梦里花落0921
浏览 120回答 2
2回答

皈依舞

如果您存储长整数值,则 excel 将压缩并存储它们,因此您将看到如下值:如果您不想将值存储为整数,或者如果您想按原样存储/检索值,并且如果您不想更改代码,那么您可以执行以下操作:在上面的数字前附加一个'符号。例如,如果数字是118995099890796那么你这样做'118995099890796。这意味着,它会将其视为字符串,您可以使用getStringCellValue()方法读取该值。我希望它有帮助...

隔江千里

艰难并不理想,但我建议在读取单元格值之前将数字单元格转换为字符串单元格。然后将 value 解析为 int 值;if(cell.getCellType()==CellType.NUMERIC) {&nbsp;cell.setCellType(Cell.CELL_TYPE_STRING);&nbsp;String cellValue=cell.getStringCellValue();&nbsp;int numericValue=Integer.parseInt(cellValue);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java