2014-03-31 42 views
0

仅使用xls时,我可以创建工作簿,但是在使用xlsx时,我似乎无法使其工作。Apache POI - 如何为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 
+2

不要ü想什么错误是ü得到的想法?更好地发布错误消息,然后寻求思考为什么/ –

+0

http://stackoverflow.com/questions/7400096/write-a-file-in-xlsx-format-using-apache-poi在这里,你有需要的罐子和小代码。请为错误代码发布适当的答案。 – kinkajou

+0

对不起,有很长的错误信息 – JBurk94

回答

1

Apache POI Dependency and Component。你可能会丢失:

对于POI-OOXML你需要它的依赖

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

虽然与您的问题无关尝试搜索堆栈跟踪:

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

从长远来看,这将对您有所帮助。

1

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

1.首先您需要导入所有的jar poi-3.9

2.增加xmlbeans2.3.0.jardom4j-1.6.jar到类路径。这2个罐子是用于处理POI库中的.xlsx Excel文件的依赖关系罐。

Maven项目添加下面的依赖

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

因此编程创建exls片

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); 

} 
}} 
相关问题