Java 打开Excel,往Excel中存入值,保存的excel格式分别是xls和xlsx

https://mirrors.cnnic.cn/apache/poi/xmlbeans/release/src/

 

 

package Excel;

import org.apache.poi.hssf.usermodel.HSSFCell;
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.ss.usermodel.CellType;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class WriteExcel {

    Date dt = new Date();
    SimpleDateFormat format = new SimpleDateFormat("YYYYMMddHHmmss");
    String time = format.format(dt);

    public void WriteExcelxls() {

        FileOutputStream out = null;
        try {
            out = new FileOutputStream(new File(".\\Log\\旧的EXCEL文件_"+time+".xls"));
            HSSFWorkbook workxls = new HSSFWorkbook();
            HSSFSheet sheet = workxls.createSheet(time);
            HSSFRow row = workxls.getSheet(time).createRow(0);


            for (short i = 0; i < 10; i++) {
                HSSFCell cell = row.createCell(i);
                cell.setCellValue("测试" + i);
            }

            sheet.createRow(1).createCell(1).setCellValue("1234567890");
            sheet.createRow(2).createCell(0).setCellValue(Calendar.getInstance());
            sheet.createRow(3).createCell(0).setCellValue("字符串");
            sheet.createRow(4).createCell(0).setCellValue(true);
            sheet.createRow(5).createCell(0).setCellType(CellType.ERROR);
            workxls.write(out);
            out.close();
            System.out.println("旧的EXCEL文件_.xls written successfully on disk.");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    public void WriteExcelxlsx() {

        File file = new File(".\\Log\\新的EXCEL文件_"+time+".xlsx");
        FileOutputStream out = null;
        try {
            out = new FileOutputStream(file);
            XSSFWorkbook workbook = new XSSFWorkbook();
            XSSFRow row = workbook.createSheet(time).createRow(0);
            XSSFSheet sheet = workbook.getSheet(time);

            for (short i = 0; i < 10; i++) {
                XSSFCell cell = row.createCell(i);
                cell.setCellValue("新的EXCEL文件" + i);
            }

            sheet.createRow(1).createCell(1).setCellValue("1234567890");
            sheet.createRow(2).createCell(0).setCellValue(Calendar.getInstance());
            sheet.createRow(3).createCell(0).setCellValue("字符串");
            sheet.createRow(4).createCell(0).setCellValue(true);
            sheet.createRow(5).createCell(0).setCellType(CellType.ERROR);
            workbook.write(out);
            out.close();
            System.out.println("新的EXCEL文件_.xlsx written successfully on disk.");

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


}

  

package Excel;

import org.testng.annotations.Test;

public class TestExcel {

    @Test(priority = 1)
    private void Testold()
    {
        WriteExcel aaa = new WriteExcel();
        aaa.WriteExcelxls();

    }

    @Test(priority = 2)
    public void Testnew()
    {
        WriteExcel aaa = new WriteExcel();
        aaa.WriteExcelxlsx();

    }
}

  依赖:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>Jasmine</groupId>
    <artifactId>Test</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.0.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.0.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml-schemas -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>4.0.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.testng/testng -->
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.9.4</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.13.1</version>
        </dependency>
    </dependencies>
</project>

  

 

package Excel;

import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.CellType;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class WriteExcelMore {

    static Date dt = new Date();
    static SimpleDateFormat format = new SimpleDateFormat("YYYYMMddHHmmss");
    static String time = format.format(dt);


    public static void main(String args[]) {

        File file = new File(".\\Log\\新的EXCEL文件_" + time + ".xls");
        FileOutputStream out = null;
        try {
            out = new FileOutputStream(file);
            HSSFWorkbook workbook = new HSSFWorkbook(); //创建一个新的excel
            HSSFSheet sheet = workbook.createSheet(time);  //创建sheet页
            HSSFHeader header = sheet.getHeader();//创建header页
            header.setCenter("Title");

            HSSFRow[] row = new HSSFRow[3];
            row[0] = sheet.createRow(0);
            HSSFCell headerCell = row[0].createCell(5);
            headerCell.setCellValue(new HSSFRichTextString("标题"));
            //HSSFRow  row = workbook.getSheet(time).createRow(3);
            row[1] = sheet.createRow(1);

            for (short i = 0; i < 5; i++) {
                HSSFCell cell = row[1].createCell(i);
                cell.setCellValue("新的EXCEL文件" + i);
            }


            row[2] = sheet.createRow(2);
            String[] arr = new String[5];
            String[] arr2 = {"aa", "bb", "cc", "dd", "ee"};
            for (short i = 0; i < 5; i++) {
                HSSFCell cell = row[2].createCell(i);
                cell.setCellValue(arr2[i]);
            }

            sheet.createRow(5).createCell(1).setCellValue("1234567890");
            sheet.createRow(6).createCell(0).setCellValue(Calendar.getInstance());
            sheet.createRow(7).createCell(0).setCellValue("字符串");
            sheet.createRow(8).createCell(0).setCellValue(true);
            sheet.createRow(9).createCell(0).setCellType(CellType.ERROR);

            //设置footer
            sheet.setGridsPrinted(false);
            HSSFFooter footer = sheet.getFooter();
            footer.setRight("page " + HeaderFooter.page() + "of" + HeaderFooter.numPages());

            workbook.write(out);
            out.close();
            System.out.println(file + " written successfully on disk.");

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

  

遇到的错如下:

1. Exception in thread "main" java.lang.NoClassDefFoundError: 

org/dom4j/DocumentExceptionCaused by: java.lang.ClassNotFoundException: org.dom4j.DocumentException

 

2. Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/compress/archivers/zip/ZipFile

 

3. Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap

 

4. Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlObject

 

5. java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlException

<!-- https://mvnrepository.com/artifact/org.apache.xmlbeans/xmlbeans -->
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>3.0.0</version>
</dependency>

 

6. java.lang.NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap


<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-collections4 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.1</version>
</dependency>

 


7. java.lang.NoClassDefFoundError: org/apache/commons/compress/archivers/zip/ZipFile

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-compress -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.18</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>

 


8. java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.setEntityExpansionLimit(I)Lorg/apache/xmlbeans/XmlOptions;

 

上述都是包的问题,后来新建了一个项目,换成maven管理依赖包,一次性解决了。

 

 

update 20181122

将上述代码拖到UI自动化项目中,发现执行报各种错误,已添加到上面。 

都是jar包的问题,但是我已经将测试成功项目中的pom文件中的jar包都下载来了,却还是报各种错,解决了一个又遇到下一个。 (┬_┬)

maven打包,因为网络问题,有时候有的包未能下载下来,就自己下载jar包引用,可是(┬_┬)(┬_┬)无力

 

 

苦心人天不负,三千越界可吞吴。哈哈哈哈,在尝试了千万遍之后,终于成功了,下面是所有新引入的jar包,百度网盘链接如下:

其中红框框是为了解决excel中xlsx格式而引入的一系列jar包。

 

链接:https://pan.baidu.com/s/1JhKENJU1PLlgOwyrnptilg
提取码:ip2u
链接若失效,请联系我

posted @ 2018-11-22 15:45  巴黎爱工作  阅读(758)  评论(0编辑  收藏  举报