无法创建Excel文件(Java)

时间:2019-02-25 16:24:43

标签: java apache-poi

我正在尝试用Java创建文件。我已经下载了最新的Apache POI版本,并且在所有“构建路径”方面都遇到了麻烦。我不确定我是否做对了所有事情,也不确定应该使用哪些jar文件。 我尝试运行代码,多数民众赞成在我得到的错误:

错误:无法初始化主类TestCaused由: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();
}
}

也许我的类路径有问题?我该如何更改? 如果那不是问题,有人有想法吗?

2 个答案:

答案 0 :(得分:0)

首先请确保您正在使用该库的最新版本 如果您使用的是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");

答案 1 :(得分:0)

可能您忘记了在类路径中添加一些jar文件。尝试执行以下步骤:

  1. 在“程序包资源管理器”标签中的项目名称上单击鼠标右键->构建路径->配置构建路径

Step 1

  1. 在“库”标签中,删除旧的POI库
  2. 点击“添加库”->用户库->用户库

Step 3

  1. 删除旧库,然后单击“新建”。然后插入库的名称,然后按“确定”。
  2. 选择新库,然后单击“添加外部Jar”。

Another step

  1. 浏览到您提取的POI路径,然后在子文件夹中选择所有jar文件!
  2. 现在单击“应用”并关闭,然后在上一个窗口中选择新库。

现在应该可以了!