首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CELL_TYPE_STRING无法解析或不是字段

CELL_TYPE_STRING无法解析或不是字段
EN

Stack Overflow用户
提问于 2018-09-26 17:31:59
回答 5查看 48.5K关注 0票数 11

堆栈跟踪

代码语言:javascript
运行
复制
Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
CELL_TYPE_STRING cannot be resolved or is not a field
CELL_TYPE_NUMERIC cannot be resolved or is not a field
CELL_TYPE_BOOLEAN cannot be resolved or is not a field

at len.a.main(a.java:30)

代码

代码语言:javascript
运行
复制
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;
                }
            }

        }

    }

}
EN

回答 5

Stack Overflow用户

发布于 2018-09-26 20:06:30

enumSTRINGNUMERICBOOLEAN,丢弃CELL_TYPE_,它们是CellType enum的一部分

代码语言:javascript
运行
复制
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;
}
票数 20
EN

Stack Overflow用户

发布于 2019-03-30 19:05:07

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

now in CELL_TYPE_NUMERIC now now just NUMERIC remove CELL_TYPE_

代码语言:javascript
运行
复制
  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;
                    }
票数 19
EN

Stack Overflow用户

发布于 2019-07-23 23:25:17

试试这段代码。它起作用了..。您只需了解poi api版本,并关注poi api的新变化即可。

代码语言:javascript
运行
复制
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));
}
}       
}
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52514468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档