【问题标题】:java.lang.NoClassDefFoundError: org/apache/poi/xssf/usermodel/XSSFWorkbook AND java.lang.ClassNotFoundException: org.apache.poi.xssf.usermodel.XSSFjava.lang.NoClassDefFoundError: org/apache/poi/xssf/usermodel/XSSFWorkbook 和 java.lang.ClassNotFoundException: org.apache.poi.xssf.usermodel.XSSF
【发布时间】:2021-03-24 12:37:43
【问题描述】:

我正在使用 Apache poi 5.0.0 从 Excel(.xlsx) 文件中读取一些数据。我将该项目作为控制台应用程序启动,因此实现工作。我将我使用的类转移到了一个 Servlet 项目。现在的问题是,当我从主页请求“生成”时,我创建了一个 ReadXL 实例。但是当我尝试实例化 XSSF 工作簿时,我得到了上面的错误。我已将所有 poi 库(使用 IntelliJ)包含到项目中(poi-ooxml-full,poi-ooxml 也是)。

请求“生成”:

<form action="generate" method="get">
        <div id="list">
          <br>
          <!-- <div class="fileName">List</div> <div class="deleteFile"> X </div><br><br>
          <div class="fileName">List</div> <div class="deleteFile"> X </div><br><br>
          <div class="fileName">List</div> <div class="deleteFile"> X </div><br><br>
          <div class="fileName">List</div> <div class="deleteFile" onclick="alert('hi')"> X </div><br><br> -->
        </div><br><br>
      <input type="submit" value="GENERATE .XLSX">
      </form>

控制器:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        ReadXL newXL = new ReadXL("C:\\xampp\\tomcat\\webapps\\Public\\ΠΡΟΤΥΠΟ ΠΡΟΜΗΘΕΥΤΗ.xlsx");
        RequestDispatcher rd=request.getRequestDispatcher("index.html");
        rd.forward(request, response);
    }

ReadXL:

public ReadXL(String path) throws IOException{
        this.openXL(path);
        .
        .
        .
}

private void openXL(String path) throws IOException{
        xlFile = new File(path);
        fis = new FileInputStream(xlFile);

        workbook = new XSSFWorkbook(fis); // get workbook <-- ERROR THROWN HERE
        .
        .
        .

    }

【问题讨论】:

    标签: java tomcat apache-poi


    【解决方案1】:

    您需要添加包含该类的poi-ooxml-5.0.0.jar

    here下载。

    【讨论】:

    • 我已将其导入库中,但阅读其他类似问题我不确定我是否以正确的方式进行操作。我这样做的方法是通过 giong 到 IntelliJ 中的项目结构并将其添加到库中
    • @tito 把你所有的 jar 放到 tomcat/lib 中。
    • @tito 如果有帮助请接受这个答案。
    猜你喜欢
    • 2017-10-26
    • 1970-01-01
    • 2015-07-28
    • 2011-09-21
    • 2019-05-27
    • 1970-01-01
    • 2019-06-14
    • 1970-01-01
    • 2016-03-29
    相关资源
    最近更新 更多