以下是我用于从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;
答案 0 :(得分:1)
在代码中尝试以下行实现
cell.setCellType(Cell.CELL_TYPE_STRING)
它对我有用。
答案 1 :(得分:0)
而不是
double CellData2 = (double)Cell.getNumericCellValue();
使用
long CellData2 = new Double(Cell.getNumericCellValue()).longValue();
它也很好用!