加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 06:15:27 所属栏目:Java 来源:网络整理
导读:div class="cnblogs_Highlighter" pre class="brush:java;gutter:true;"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.apach

<div class="cnblogs_Highlighter">
<pre class="brush:java;gutter:true;">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();
    }
}

}

  

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

}

}

  依赖:

4.0.0
<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>

  

<div class="cnblogs_Highlighter">
<pre class="brush:java;gutter:true;">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:?

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

org.apache.xmlbeans xmlbeans 3.0.0

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

org.apache.commons commons-collections4 4.1

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

org.apache.commons commons-compress 1.18 org.apache.commons commons-lang3 3.4

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包。

链接:提取码:ip2u 链接若失效,请联系我

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读