如何在java中将hssfcell转换为字符串

时间:2015-09-08 15:47:52

标签: java apache apache-poi

我有一段代码抛出了我(我把这条线加粗了)

Exception in thread "main" java.lang.ClassCastException: org.apache.poi.hssf.usermodel.HSSFCell cannot be cast to java.lang.String
    at com.codi.excel.ExcelRead.main(ExcelRead.java:36)

我的代码如下 -

HSSFWorkbook wb = new HSSFWorkbook(input);
            HSSFSheet sheet = wb.getSheetAt(0);
            List MobileSeries=new ArrayList();
            MobileSeries = findRow(sheet, cellContent);

            if(MobileSeries !=null){
                for(Iterator iter=MobileSeries.iterator();iter.hasNext();){
                    **String mobileSeries=(String)iter.next();**
                    String LidPattern=extractNumber(mobileSeries);
                    if (lid.startsWith(LidPattern)) {
                    System.out.println("This is a mobile number");

你能帮我解决吗?

2 个答案:

答案 0 :(得分:0)

在迭代工作表的行时,请检查HSSFCell单元格是否为String类型。

InputStream fileInputStream = null;
HSSFWorkbook hssfWorkbook;
HSSFSheet sheet;
HSSFRow row;
HSSFCell cell;
Iterator rowIterator, cellIterator;

// Put these loc in a try-catch block
fileInputStream = new FileInputStream("/path/to/TestExcel.xls");
hssfWorkbook = new HSSFWorkbook(fileInputStream);
sheet = hssfWorkbook.getSheetAt(0);
rowIterator = sheet.rowIterator();

while (rowIterator.hasNext()) {
    row = (HSSFRow) rowIterator.next();
    cellIterator = row.cellIterator();
    while (cellIterator.hasNext()) {
        cell = (HSSFCell) cellIterator.next();

        if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
            String someVariable = cell.getStringCellValue();
        } else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
            // Handle numeric type
        } else {
          // Handle other types
        }
    }
    // Other code
}

答案 1 :(得分:-1)

尝试访问单元格并从中提取值。以下代码段可以帮助您:

{{1}}