Подтвердить что ты не робот

Исключение в потоке "main" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlException

Мне нужно прочитать xls файл в java.I использовал poi-3.6 для чтения xls файла в Eclipse. Но я получаю эту ОШИБКУ " Исключение в потоке" main "java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlException в ReadExcel2.main(ReadExcel2.java:38)".

Я добавил следующие банки 1) пои-3.6-20091214.jar 2) пои-вно-3.6-20091214.jar 3) пои-примеры-3.6-20091214.jar 4) пои-OOXML-3.6-20091214.jar 5) пои-OOXML-схема-3.6-20091214.jar 6) пои-блокнот-3.6-20091214.jar

Ниже приведен код, который я использую:

import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;
public class ReadExcel {

    public static void main(String[] args) throws Exception {
        //
        // An excel file name. You can create a file name with a full path
        // information.
        //
        String filename = "C:\\myExcel.xl";
        //
        // Create an ArrayList to store the data read from excel sheet.
        //
        List sheetData = new ArrayList();

        FileInputStream fis = null;
        try {
            //
            // Create a FileInputStream that will be use to read the excel file.
            //
            fis = new FileInputStream(filename);

            //
            // Create an excel workbook from the file system.
            //
           // HSSFWorkbook workbook = new HSSFWorkbook(fis);
            Workbook workbook = new XSSFWorkbook(fis);  

            //
            // Get the first sheet on the workbook.
            //
            Sheet sheet = workbook.getSheetAt(0);

            //
            // When we have a sheet object in hand we can iterator on each
            // sheet rows and on each row cells. We store the data read
            // on an ArrayList so that we can printed the content of the excel
            // to the console.
            //
            Iterator rows = sheet.rowIterator();
            while (rows.hasNext()) {
                Row row = (XSSFRow) rows.next();
                Iterator cells = row.cellIterator();

                List data = new ArrayList();
                while (cells.hasNext()) {
                    Cell cell = (XSSFCell) cells.next();
                    data.add(cell);
                }

                sheetData.add(data);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (fis != null) {
                fis.close();
            }
        }

        showExelData(sheetData);
    }
    private static void showExelData(List sheetData) {
        //
        // Iterates the data and print it out to the console.
        //
        for (int i = 0; i < sheetData.size(); i++) {
            List list = (List) sheetData.get(i);
            for (int j = 0; j < list.size(); j++) {
                Cell cell = (XSSFCell) list.get(j);
                System.out.print(cell.getRichStringCellValue().getString());
                if (j < list.size() - 1) {
                    System.out.print(", ");
                }
            }
            System.out.println("");
        }
    }
}

Пожалуйста, помогите. спасибо в ожидании, С Уважением, Dheeraj!

4b9b3361

Ответ 1

Вам нужно xmlbeans в вашем пути к классам.

NoClassDefFoundError означает, что:

Определение класса поиска в поиске существовало при компиляции текущего исполняемого класса, но определение больше не может быть найдено.

Итак, в следующий раз, когда вы получите такое исключение, это означает, что для сторонней библиотеки требуется другая сторонняя библиотека. Затем используйте Google (или любые другие средства), чтобы найти, какую библиотеку это. Более того, большинство библиотек четко заявляют в своих документах и ​​/или дистрибутивах, каковы их зависимости.

Ответ 2

JarFinder предлагает XMLBeans.jar

Ответ 3

Произошла такая же ошибка в Apache POI 3.16. Добавлены следующие банки из Apache POI/ooxml-lib/xmlbeans-2.6.0 и для следующего исключения в отношении сборников /lib/commons -collections4-4.1.jar для исправления.