Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ApachePOI-如何为xlsx创建工作簿_Java_Excel_Apache Poi - Fatal编程技术网

Java ApachePOI-如何为xlsx创建工作簿

Java ApachePOI-如何为xlsx创建工作簿,java,excel,apache-poi,Java,Excel,Apache Poi,使用xls时,我可以很好地创建工作簿,但是使用xlsx时,我似乎无法使其正常工作 我正在使用poi ooxml.jar并尝试使用该命令 new XSSFWorkbook(); 但是每次我都会收到一条错误信息,有什么想法吗 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Workbook at java.lang.ClassLoader.defineClass1(Nati

使用
xls
时,我可以很好地创建工作簿,但是使用
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

我认为您需要从下载二进制发行版

将JAR添加到您的库中,应该可以解决此错误

确保添加所有JAR,而不仅仅是poi ooxml。您可能缺少:

对于poi ooxml,您需要它的依赖项

  • 警察局
  • poi ooxml模式
  • dom4j
  • poi-ooxml-version-yyyymmdd.jar
  • 尽管与您的问题无关,但请尝试搜索stacktrace:

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

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

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

    1.首先需要导入所有jar

    2.将和添加到类路径。这两个JAR是用于处理POI库中.xlsx Excel文件的依赖项JAR

    Maven项目添加以下依赖项

    <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.9</version> 
    </dependency>
    
    
    org.apache.poi
    poi
    3.9
    
    创建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);
    
    }
    }}
    
    package com.loknath.lab;
    导入java.io.FileOutputStream;
    导入org.apache.poi.hssf.usermodel.HSSFCell;
    导入org.apache.poi.hssf.usermodel.HSSFRichTextString;
    导入org.apache.poi.hssf.usermodel.HSSFRow;
    导入org.apache.poi.hssf.usermodel.HSSFSheet;
    导入org.apache.poi.hssf.usermodel.HSSFWorkbook;
    导入org.apache.poi.openxml4j.exceptions.InvalidFormatException;
    导入org.apache.poi.ss.usermodel.Cell;
    导入org.apache.poi.ss.usermodel.Row;
    导入org.apache.poi.ss.usermodel.Sheet;
    导入org.apache.poi.ss.usermodel.工作簿;
    导入org.apache.poi.ss.usermodel.WorkbookFactory;
    公共类ReadWriteXL
    {
    公共静态void main(字符串[]args)引发InvalidFormatException,IOException{
    System.out.println(“将数据写入Excel工作表”);
    FileOutputStream fos=新的FileOutputStream(“D:/temp/1.xlsx”);
    HSSFWorkbook=新的HSSFWorkbook();
    HSSFSheet电子表格=工作簿.createSheet(“电子邮件”);
    HSSFRow row;
    HSSF细胞;
    
    对于(int i=0;我想知道你得到的错误是什么吗?最好先发布错误消息,然后再思考一下为什么/这里你需要JAR和小代码。请也发布错误代码以获得合适的答案。对不起,有很长的错误消息,从我目前发现的小错误来看,我似乎需要更多的JAR。应该吗我是否也包括staxapi和xmlbeans?