0

有人可以帮忙吗?通过使用该代码,我也能够从 Excel 字段中获取值。特定列的值 = 5。

public Integer  Check4(int b) throws IOException  {
    InputStream myxls = new FileInputStream("book.xls");
    HSSFWorkbook wb     = new HSSFWorkbook(myxls);
    HSSFSheet sheet = wb.getSheetAt(0);       // first sheet
    HSSFRow row     = sheet.getRow(0);        // first row
    //HSSFCell cell0   = row.getCell((short)a);  // first arg
    HSSFCell cell1   = row.getCell((short)b);  // second arg
    cell1.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
    System.out.println("smth "+  cell1);
    return ;

}

但是,此类代码的输出是:

"smth + 5.0"

我明白了,如何将 var cell1 5.0 转换为 5 ?Math.round, Integer.parseInt() 实际上没有帮助

4

2 回答 2

1

您必须从使用HSSFCell之前获取字符串值Integer.parseInt()。使用Integer.parseInt(cell1.getStringCellValue()). 您可能可以使用getNumericCellValue(),但这将返回一个double.

于 2014-05-12T13:47:13.000 回答
0

最后,通过 (int) Math.round(cell1.getNumericCellValue())) 求解

    public Integer  Check4(int b) throws IOException  {
    InputStream myxls = new FileInputStream("book.xls");
    HSSFWorkbook wb     = new HSSFWorkbook(myxls);
    HSSFSheet sheet = wb.getSheetAt(0);       // first sheet
    HSSFRow row     = sheet.getRow(1);        // first row
    //HSSFCell cell0   = row.getCell((short)a);  // first arg
    HSSFCell cell1   = row.getCell((short)b);  // second arg
    String sell = cell1.toString();
    cell1.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
    System.out.println("smth "+ (int) Math.round(cell1.getNumericCellValue()));
    return  (int) Math.round(cell1.getNumericCellValue());

}
于 2014-05-12T14:33:03.830 回答