Не удается создать файл Excel (Java) - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь создать файл на Java.Я скачал последнюю версию Apache POI и, похоже, не могу разобраться со всем, что касается «пути сборки».Я не уверен, что все делал правильно, и не уверен, какие jar-файлы мне следует использовать.Я пытаюсь запустить код, и вот ошибка, которую я получаю:

Ошибка: невозможно инициализировать основной класс TestCaused by: java.lang.NoClassDefFoundError: org / apache / poi / ss / usermodel / Workbook

Мой код:

import java.io.IOException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class Test {
public static void main(String[] args) throws IOException {
    Workbook workbook = new XSSFWorkbook("Test.xlsx");
    Sheet sheet = workbook.createSheet("SheetTest");
    Row headerRow = sheet.createRow(0);
    for (int i = 0; i < 5; i++) {
        Cell cell = headerRow.createCell(i);
        cell.setCellValue(i);
    }
    workbook.close();
}
}

Может быть, у меня есть проблема с classpath?Как я могу это изменить?Если это не проблема, у кого-нибудь есть идея?

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Возможно, вы забыли добавить несколько файлов jar в путь к классам.Попробуйте выполнить следующие действия:

  1. Щелкните правой кнопкой мыши имя вашего проекта на вкладке Package Explorer -> Build Path -> Configure Build Path

Step 1

На вкладке «Библиотеки» удалите старую библиотеку POI Нажмите «Добавить библиотеку» -> Пользовательская библиотека -> Пользовательские библиотеки

Step 3

Удалите старые библиотеки и нажмите «Создать».Затем вставьте имя библиотеки и нажмите «ОК». Выберите новую библиотеку и нажмите «Добавить внешние банки».

Another step

Найдите путь к извлеченному POI и выберите все файлы JAR, также в подпапках! Теперь нажмите Apply и закройте и выберите новую библиотеку в предыдущем окне.

Теперь это должно работать!

0 голосов
/ 25 февраля 2019

во-первых, убедитесь, что вы используете последнюю версию этой библиотеки, если вы используете maven, эти зависимости помогают вам

 <!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->

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

    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>4.0.1</version>
    </dependency>

, а также вам нужно создать файл с расширениями .xls или .xlsx, которые выможно использовать что-то вроде этого

Workbook workbook = WorkbookFactory.create(new File(fileName));

Sheet sheet = workbook.createSheet("sheetName");
int rowIndex = 0;
// this is an example from the official site  iterate over the list  and fill the  sheet 
                while(iterator.hasNext()){
                    Country country = iterator.next();
                    Row row = sheet.createRow(rowIndex++);
                    Cell cell0 = row.createCell(0);
                    cell0.setCellValue(country.getName());
                    Cell cell1 = row.createCell(1);
                    cell1.setCellValue(country.getShortCode());
                }
//lets write the excel data to file now
        FileOutputStream fos = new FileOutputStream(fileName);
        workbook.write(fos);
        fos.close();
        System.out.println(fileName + " written successfully");
...