有人可以帮忙吗? 通过使用该代码,我也能够从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()实际上并没有帮助
答案 0 :(得分:1)
在使用HSSFCell
之前,您必须从Integer.parseInt()
获取字符串值。
使用Integer.parseInt(cell1.getStringCellValue())
。您可以使用getNumericCellValue()
,但这将返回double
。
答案 1 :(得分: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());
}