Apache POI – 如何为xlsx创build工作簿

当用xls工作时,我可以创build工作簿,但是使用xlsx时,似乎无法使其工作。

我正在使用poi-ooxml.jar并试图使用该命令

 new XSSFWorkbook(); 

不过,我每次都会收到错误消息,有什么想法?

 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Workbook at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$000(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at Testing2.main(Testing2.java:20) Caused by: java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.Workbook at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) ... 13 more 

Apache POI依赖和组件 。 你可能会失踪:

poi-ooxml你需要它的依赖

  1. POI,
  2. POI-OOXML-模式
  3. DOM4J
  4. POI-OOXML版本,yyyymmdd.jar

虽然不涉及你的问题尝试search堆栈跟踪:

 Caused by: java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.Workbook 

这将从长远来帮助你。

您需要添加额外的2个jar子使POI在(.xlsx)Excel文件上工作。

首先你需要导入所有的jar poi-3.9

2.将xmlbeans2.3.0.jar和dom4j-1.6.jar添加到您的类path中。 这2个jar子是用于处理POI库中的.xlsx Excel文件的依赖关系jar。

Maven项目添加如下依赖项

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

所以编程创buildexls表

  package com.loknath.lab; import java.io.FileOutputStream; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; 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.ss.usermodel.WorkbookFactory; public class ReadWriteXL { public static void main(String[] args) throws InvalidFormatException, IOException{ System.out.println("Write data to an Excel Sheet"); FileOutputStream fos=new FileOutputStream("D:/temp/1.xlsx"); HSSFWorkbook workBook = new HSSFWorkbook(); HSSFSheet spreadSheet = workBook.createSheet("email"); HSSFRow row; HSSFCell cell; for(int i=0;i<arr.size();i++){ row = spreadSheet.createRow((short) i); cell = row.createCell(i); cell.setCellValue("string value added"); } workBook.write(fos); } }} 

我想你需要从http://poi.apache.org/download.html下载二进制发行&#x7248;

将jar添加到你的库中,它应该能够解决这个错误

一定要添加所有的jar子,不只是poi-ooxml