即使使用 Maven 依赖项 poi-ooxml 后仍缺少 XSSFWorkbook

问题描述 投票:0回答:2

首先我要说的是,我看到了很多关于该错误的问题

XSSFWorkbook cannot be resolved to a type
。然而,我已经研究了其中的大多数,并且接受的答案似乎是添加 Maven 依赖项 poi-ooxml。事实上,Apache POI 官方网站上的信息支持了这一点。

但是,这对我来说仍然不起作用。到目前为止我看到的所有答案都使用了相当旧的版本。我担心现在的答案可能会有所不同。

另一个有趣的事情是我之前手动使用jar,并且没有遇到任何问题。然而,当尝试将其作为 Maven 依赖项导入时,

org.apache.poi.xssf.usermodel.XSSFWorkbook
似乎是唯一缺少的导入。

Ps:我也尝试过使用 poi-ooxml-full 和 poi-ooxml-schemas,但都不起作用。

pom

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>s6-night-shift</groupId>
  <artifactId>s6-night-shift</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <resources>
      <resource>
        <directory>src</directory>
        <excludes>
          <exclude>**/*.java</exclude>
        </excludes>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
          <release>15</release>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
        <groupId>com.sun.activation</groupId>
        <artifactId>javax.activation</artifactId>
        <version>1.2.0</version>
    </dependency>
    <dependency>
        <groupId>com.j2html</groupId>
        <artifactId>j2html</artifactId>
        <version>1.5.0</version>
    </dependency>
    <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.5.0-b01</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>5.2.0</version>
        <type>pom.sha512</type>
    </dependency>
  </dependencies>
</project>
java excel maven apache-poi pom.xml
2个回答
0
投票

您需要在 pom.xml 文件中添加另一个 Apache 依赖项。最好是像下面这样的。之所以如此,是因为 Apache POi

XSSFWorkbook 
类的解析需要这两个依赖项。

    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>5.2.0</version>
    </dependency>

0
投票

在我的例子中,它通过添加以下 2 个依赖项来工作

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>5.2.4</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>5.2.4</version>
    </dependency>
© www.soinside.com 2019 - 2024. All rights reserved.