使用JAVA从excel检索INTEGER值

use*_*609 3 java excel apache-poi

我的目标是读取excel文件uisng POI并打印其中的值.如果值为5,则我的输出必须为5.但它返回5.0.以下是我尝试过的代码.

    FileInputStream fileInputStream = null;
    XSSFSheet xssfResultSheet = null;
    String filePath = "C:\\MyXcel.xlsx";
    fileInputStream = new FileInputStream(new File(filePath));
    XSSFWorkbook workbook = null;
    workbook = new XSSFWorkbook(fileInputStream);
    xssfResultSheet = workbook.getSheet("Sheet1");
    int iRowCount = xssfResultSheet.getLastRowNum();

    for (int i = 1; i <= iRowCount; i++) {
        Row resultRow = xssfResultSheet.getRow(i);
        System.out.println(resultRow.getCell(0));
    }
Run Code Online (Sandbox Code Playgroud)

我的Excel的值为1,2,3,但我的输出为1.0,2.0,3.0.相反,我的输出也应该是1,2,3

Pop*_*ibo 8

更改:

System.out.println(resultRow.getCell(0));
Run Code Online (Sandbox Code Playgroud)

至:

System.out.println(new DataFormatter().formatCellValue(resultRow.getCell(0)));
Run Code Online (Sandbox Code Playgroud)

说明:

apache-poi提供DataFormatter类作为实用程序,以利用excel上显示的内容格式.您也可以选择自定义格式,一个简单的例子就是(单元格是XSSFCell对象的引用):

Excel工作表看起来像:

在此输入图像描述

码:

System.out.println(new DataFormatter().formatCellValue(cell));
Run Code Online (Sandbox Code Playgroud)

以上行将打印:

50%
$ 1,200
12/21/14
9886605446
Run Code Online (Sandbox Code Playgroud)

而您的正常印刷品会以不同的方式解释它:

0.5
1200.0
21-Dec-2014
9.886605446E9
Run Code Online (Sandbox Code Playgroud)