簡體   English   中英

找不到 apache poi 庫

[英]can't find apache poi libraries

我第一次嘗試使用 apache poi 庫來管理 Execel 文件。 我按照以下步驟導入 apache poi: Import Apache POI in Intellij for JAVA 代碼編譯沒有錯誤但是當我運行它時給我這個錯誤信息:

線程“main”中的異常 java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlObject at Test.main(Test.java:16) Caused by: java.lang.ClassNotFoundException: org.apache.xmlbase8.82XmlObject at 44 /jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636) 在 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182) 在 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182) 在 java.base/jdk.internal.loader.ClassLoaders .loadClass(ClassLoader.java:519)... 1 更多

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
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 Test {
    public static void main(String[] args) {
        try {
            File file = new File("C:\\Users\\Huawei\\IdeaProjects\\untitled\\src\\TEST.xlsx");
            FileInputStream fis = new FileInputStream(file);
            XSSFWorkbook wb = new XSSFWorkbook(fis);
            XSSFSheet sheet = wb.getSheetAt(0);
            Iterator<Row> itr = sheet.iterator();
            while(itr.hasNext()){
                Row row = itr.next();
                Iterator<Cell> celliterator = row.cellIterator();
                while(celliterator.hasNext()){
                    Cell cell = celliterator.next();
                    switch (cell.getCellType()){
                        case STRING:    //field that represents string cell type
                            System.out.print(cell.getStringCellValue() + "\t\t\t");
                            break;
                        case NUMERIC:    //field that represents number cell type
                            System.out.print(cell.getNumericCellValue() + "\t\t\t");
                            break;
                        default:
                            System.out.println("NOT NUMERIC AND NOT STRING");
                    }
                }
            }

        }catch (Exception e ){
            e.printStackTrace();
        }

        }
    }

這似乎是一個經典的 Maven 項目,其中下載了.jar ,而不是通過mvn命令安裝。

如果在運行時引發ClassNotFoundException ,那是因為您的項目在編譯后找不到庫。

是這樣嗎? 如果是這樣,您必須通過mvn install添加.jar並在您的 pom.xml 中聲明他。 更好的解決方案是直接添加 maven 依賴項:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM