如何使用硒从excel表中提取双int值

时间:2017-04-19 07:41:17

标签: excel selenium

以下是我用于从excel表中提取任何值的代码。单元格值可以是字符串,日期或长整数。使用下面的代码,我能够正确提取字符串和日期,但长的int值将以4.6861230317E10而不是46861230317的形式出现。如何克服这个问题??

 Cell = ExcelWSheet.getRow(RowNum).getCell(ColNum); 
                if(Cell.getCellTypeEnum() == CellType.STRING)
                {

                    System.out.println("check for celltype string");
                    CellData = Cell.getStringCellValue();
                    System.out.println("String CellData:"+CellData);
                }   
                else  
                if(Cell.getCellTypeEnum() == CellType.NUMERIC)
                {
                    System.out.println("checking for celltype numeric");
                    CellData = fmt.formatCellValue(Cell);
                    if(CellData.contains("/"))
                    {
                        System.out.println("its a date !"+CellData);
                    }
                    else if(!CellData.contains("/"))
                    {

                        double  CellData2 = (double)Cell.getNumericCellValue(); 
                        System.out.println("actual double value "+CellData2);
                        CellData=String.valueOf(CellData2);
                        System.out.println("its a double int numeric value "+CellData);

                    }

                }   
                System.out.println("returning cell data "+CellData);
                return CellData;

2 个答案:

答案 0 :(得分:1)

在代码中尝试以下行实现

cell.setCellType(Cell.CELL_TYPE_STRING)

它对我有用。

答案 1 :(得分:0)

而不是

double  CellData2 = (double)Cell.getNumericCellValue(); 

使用

long CellData2 = new Double(Cell.getNumericCellValue()).longValue();  

它也很好用!