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你需要它的依赖
- POI,
- POI-OOXML-模式
- DOM4J
- 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下载二进制发行版
将jar添加到你的库中,它应该能够解决这个错误
一定要添加所有的jar子,不只是poi-ooxml