找到接口 org.apache.poi.util.POILogger,但类是预期错误

Rav*_*avi 7 java apache-poi maven selenium-webdriver

public String readExcel(String columnname,String UserType) {


        try {
            FileInputStream file = new FileInputStream(path);
            @SuppressWarnings("resource")
            XSSFWorkbook wr = new XSSFWorkbook(file);
            XSSFSheet sh = wr.getSheet(prop.getProperty("env"));
            int row = sh.getPhysicalNumberOfRows();
            System.out.println(row);

                for(int j=0;j<row;j++) {
                    if((sh.getRow(j).getCell(1).getStringCellValue()).equalsIgnoreCase(UserType)) {
                        for(int i=0;i<row;i++) {
                            String s=sh.getRow(0).getCell(i).getStringCellValue();
                            if(s.equals(columnname)) {
                                 value = sh.getRow(0).getCell(i).getStringCellValue();
                            }
                        }
                    }
                }
            }catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        catch (IOException e) {
            e.printStackTrace();
        }
        return value;
    }
    public static void main(String args[]) {
        Util obj=new Util();
        obj.readExcel("Username","Testuser1");
    }
Run Code Online (Sandbox Code Playgroud)

我正在使用此代码从 Excel 读取数据,但在线程 "main" 中出现异常java.lang.IncompatibleClassChangeError: Found interface org.apache.poi.util.POILogger, but class was expected。不知道是什么原因,有人能帮我解决这个问题吗?

Fon*_*ard 7

将此添加到您的 pom.xml 文件中

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>x.x.x</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

poi-ooxmlpoi的版本应该是一样的。

我假设您的 pom.xml 文件中已经有poi

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>x.x.x</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助


gil*_*des 5

poi当和的版本poi-ooxml不匹配时,我收到此错误。这导致了错误:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.15</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

对齐这些库的版本后,错误消失了:

<properties>
    <poi.version>4.1.2</poi.version>
</properties>

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>${poi.version}</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>${poi.version}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)