为了账号安全,请及时绑定邮箱和手机立即绑定

CELL_TYPE_STRING 无法解析或不是字段

CELL_TYPE_STRING 无法解析或不是字段

小唯快跑啊 2021-10-13 10:11:45
堆栈跟踪Exception in thread "main" java.lang.Error: Unresolved compilation problems: CELL_TYPE_STRING cannot be resolved or is not a fieldCELL_TYPE_NUMERIC cannot be resolved or is not a fieldCELL_TYPE_BOOLEAN cannot be resolved or is not a fieldat len.a.main(a.java:30)代码package len;import java.io.FileInputStream;import java.util.ArrayList;import java.util.Iterator;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.xssf.usermodel.XSSFWorkbook;public class a {    public static void main(String[] args) throws Exception{        ArrayList data =new ArrayList();        FileInputStream f =new FileInputStream("E:\\leadsuite.xlsx");        XSSFWorkbook wb=new XSSFWorkbook(f);        Sheet s=wb.getSheet("test steps");        Iterator itr=s.iterator();        while(itr.hasNext())        {            Row r=(Row) itr.next();            Iterator cellitr=r.cellIterator();            while(cellitr.hasNext())            {                Cell celldata=(Cell) cellitr.next();                switch(celldata.getCellType())                {                case Cell.CELL_TYPE_STRING:                    data.add(celldata.getStringCellValue());                    break;                case Cell.CELL_TYPE_NUMERIC:                    data.add(celldata.getNumericCellValue());                    break;                case Cell.CELL_TYPE_BOOLEAN:                    data.add(celldata.getBooleanCellValue());                    break;                }            }        }    }}
查看完整描述

3 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

该enums为STRING,NUMERIC并BOOLEAN,降CELL_TYPE_,他们的部分单元格类型枚举


switch(celldata.getCellType()) {

    case CellType.STRING:

        data.add(celldata.getStringCellValue());

        break;

    case CellType.NUMERIC:

        data.add(celldata.getNumericCellValue());

        break;

    case CellType.BOOLEAN:

        data.add(celldata.getBooleanCellValue());

        break;

}


查看完整回答
反对 回复 2021-10-13
?
SMILET

TA贡献1796条经验 获得超4个赞

如果您使用更高版本的 Apache POI poi-4.0.1,则Cell.getCellType()返回 CellType 枚举而不是 int,因此您的开关应如下所示:


现在在CELL_TYPE_NUMERIC现在只是NUMERIC删除CELL_TYPE_


  while(cellitr.hasNext())

                {

                    Cell celldata=(Cell) cellitr.next();

                    switch(celldata.getCellType())

                    {

                    case STRING:

                        data.add(celldata.getStringCellValue());

                        break;

                    case NUMERIC:

                        data.add(celldata.getNumericCellValue());

                        break;

                    case BOOLEAN:

                        data.add(celldata.getBooleanCellValue());

                        break;

                    }


查看完整回答
反对 回复 2021-10-13
?
繁花如伊

TA贡献2012条经验 获得超12个赞

试试这个代码。它有效...您只需要知道 poi api 版本并遵循 poi api 中的新更改。


import java.io.FileInputStream;

import java.util.ArrayList;

import java.util.Iterator;

import org.apache.poi.ss.usermodel.Cell;

import org.apache.poi.ss.usermodel.Row;

import org.apache.poi.xssf.usermodel.XSSFSheet;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;



public class A {


    public static void main(String[] args) throws Exception{


        ArrayList data = new ArrayList();


        FileInputStream file = new FileInputStream("F://LeadSuite.xlsx");

        XSSFWorkbook book = new XSSFWorkbook(file);

        XSSFSheet s = book.getSheet("TestSteps");


    Iterator itr = s.iterator();

    while (itr.hasNext()) {

        Row rowitr = (Row) itr.next();

        Iterator cellitr = rowitr.cellIterator();

        while(cellitr.hasNext()) {

            Cell celldata = (Cell) cellitr.next();


            switch(celldata.getCellType()) {

            case STRING:

                data.add(celldata.getStringCellValue());

                break;

            case NUMERIC:

                data.add(celldata.getNumericCellValue());

                break;

            case BOOLEAN:

                data.add(celldata.getBooleanCellValue());

                break;

            }

        }

    }


    for (int i=0;i<data.size();i++) {

        if(data.get(i).equals("Sharan")) {

            System.out.println(data.get(i));

            System.out.println(data.get(i+1));

            System.out.println(data.get(i+2));

            System.out.println(data.get(i+3));          

        }

        if(data.get(i).equals("Kiran")) {

            System.out.println(data.get(i));

            System.out.println(data.get(i+1));

            System.out.println(data.get(i+2));

            System.out.println(data.get(i+3));

        }

        if(data.get(i).equals("Jhade")) {

            System.out.println(data.get(i));

            System.out.println(data.get(i+1));

            System.out.println(data.get(i+2));

            System.out.println(data.get(i+3));

}

}       

}

}



查看完整回答
反对 回复 2021-10-13
  • 3 回答
  • 0 关注
  • 1143 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信