简体   繁体   中英

How can I read both string and numeric from excel in a single program in java selenium

FileInputStream file=new FileInputStream ("C:\\Users\\sagar.lankegowda\\Desktop\\My workspace\\adt bundle\\adt-bundle-windows-x86_64-20140702\\eclipse\\Excel\\UserCreditanls.xls");
Workbook wb=WorkbookFactory.create(file);
Sheet st=wb.getSheet("Sheet1");
Row r= st.getRow(0);
Cell c=r.getCell(1);
String str="";

if(c.equals(str))
{
     System.out.println(c.getStringCellValue());
}
//System.out.println(str);
else
{   
    System.out.println(c.getNumericCellValue());
}
System.out.println(str);

While running this code I am getting an exception as:

Exception in thread "main" java.lang.IllegalStateException: Cannot get a NUMERIC value from a STRING cell

What you can do here is just format cell type as desired. I'm posting code of it below:

private static String formatCell(Cell cell)
{
    NumberFormat nf = NumberFormat.getNumberInstance(Locale.getDefault());
    DecimalFormat df = (DecimalFormat)nf;
    df.setRoundingMode(RoundingMode.CEILING);
    df.setGroupingUsed(false);
    df.setMaximumFractionDigits(2);
    if (cell == null) {
        return "";
    }
    switch(cell.getCellType()) {
        case Cell.CELL_TYPE_BLANK:
            return "";
        case Cell.CELL_TYPE_BOOLEAN:
            return Boolean.toString(cell.getBooleanCellValue());
        case Cell.CELL_TYPE_ERROR:
            return "*error*";
        case Cell.CELL_TYPE_NUMERIC:
            return df.format(cell.getNumericCellValue());
        case Cell.CELL_TYPE_STRING:
            return cell.getStringCellValue();
        case Cell.CELL_TYPE_FORMULA:
            return df.format(cell.getNumericCellValue());
        default:
            return "<unknown value>";
    }
}

and call:

formatCell(row.getCell(0))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM