2017-04-19 8 views
0

以下は、Excelシートから任意の値を抽出するために使用したコードです。セルの値は、文字列、日付、またはlong intにすることができます。以下のコードを使用すると、文字列と日付を正しく抽出できますが、long intの値は46861230317の代わりに4.6861230317E10になります。この問題を解決するにはどうすればよいですか?セレンを使用してExcelシートからdouble int値を抽出する方法

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; 

答えて

1

は、それは私のために働いて、あなたのコード内で

cell.setCellType(Cell.CELL_TYPE_STRING) 

を次の行の実装を試してみてください。

0

代わりの

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

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

を使用するにはあまりにもうまく動作します!

関連する問題