javaPOI

导入依赖

<!--导入依赖-->
<dependencies>
    <!--xls03-->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>4.1.2</version>
    </dependency>
    <!--xls07-->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>4.1.2</version>
    </dependency>
    <!--日期格式化工具-->
    <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>2.10.4</version>
    </dependency>
    <!--测试-->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.2</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter</artifactId>
        <version>RELEASE</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

文件写入

package com.leitao;

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.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.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.joda.time.DateTime;
import org.junit.jupiter.api.Test;

import java.io.FileOutputStream;
import java.io.IOException;


/**
 * @Description: TODO
 * @Author djn
 * @Date 2021/11/3
 * @Version V1.0
 **/
public class ExcelWriteTest {

    String PATH = "E:\\IdeaWorkSpace\\";
    @Test
    public void testWrite03() throws IOException {
        /*创建一个工作薄*/
        HSSFWorkbook workbook = new HSSFWorkbook();
        /*创建一个工作表*/
        HSSFSheet sheet = workbook.createSheet("个人信息统计表-雷涛");
        /*创建第一行*/
        HSSFRow row1 = sheet.createRow(0);
        /*创建单元格*/
        HSSFCell cell11 = row1.createCell(0);
        cell11.setCellValue("姓名");
        HSSFCell cell12 = row1.createCell(1);
        cell12.setCellValue("性别");
        HSSFCell cell13 = row1.createCell(2);
        cell13.setCellValue("年龄");
        HSSFCell cell14 = row1.createCell(3);
        cell14.setCellValue("创建时间");
        HSSFRow row2 = sheet.createRow(1);
        HSSFCell cell21 = row2.createCell(0);
        /*(1,1)*/
        cell21.setCellValue("雷涛");
        HSSFCell cell22 = row2.createCell(1);
        /*(1,2)*/
        cell22.setCellValue("男");
        HSSFCell cell23 = row2.createCell(2);
        /*(1,3)*/
        cell23.setCellValue("22");
        HSSFCell cell24 = row2.createCell(3);
        String time = new DateTime().toString("yyy-MM-dd HH:mm:ss");
        /*(1,4)*/
        cell24.setCellValue(time);
        /*生成一张表(IO流)*/
        FileOutputStream fileOutputStream = new FileOutputStream(PATH + "个人信息统计表03版本.xls");
        workbook.write(fileOutputStream);
        fileOutputStream.close();
        System.out.println("个人信息表已自动生成!");
    }

    @Test
    public void testWrite07() throws IOException {
        /*创建一个工作薄 07*/
        Workbook workbook = new XSSFWorkbook();
        /*创建一个工作表*/
        Sheet sheet = workbook.createSheet("个人信息统计表-张红彬");
        /*创建第一行*/
        Row row1 = sheet.createRow(0);
        /*创建单元格*/
        Cell cell11 = row1.createCell(0);
        cell11.setCellValue("姓名");
        Cell cell12 = row1.createCell(1);
        cell12.setCellValue("性别");
        Cell cell13 = row1.createCell(2);
        cell13.setCellValue("年龄");
        Cell cell14 = row1.createCell(3);
        cell14.setCellValue("创建时间");
        Row row2 = sheet.createRow(1);
        Cell cell21 = row2.createCell(0);
        /*(1,1)*/
        cell21.setCellValue("雷涛");
        Cell cell22 = row2.createCell(1);
        /*(1,2)*/
        cell22.setCellValue("男");
        Cell cell23 = row2.createCell(2);
        /*(1,3)*/
        cell23.setCellValue("22");
        Cell cell24 = row2.createCell(3);
        String time = new DateTime().toString("yyy-MM-dd HH:mm:ss");
        /*(1,4)*/
        cell24.setCellValue(time);
        /*生成一张表(IO流)*/
        FileOutputStream fileOutputStream = new FileOutputStream(PATH + "个人信息统计表07版本.xlsx");
        workbook.write(fileOutputStream);
        fileOutputStream.close();
        System.out.println("个人信息表07已自动生成!");
    }

    @Test
    public void testWrite03BigData() throws IOException {
        //开始时间
        long begin = System.currentTimeMillis();
        //创建一个03工作薄
        Workbook workbook = new HSSFWorkbook();
        //创建一个表
        Sheet sheet = workbook.createSheet();
        //写入数据
        for (int rowNum = 0; rowNum <65537 ; rowNum++) {
            //创建行
            Row row = sheet.createRow(rowNum);

            for (int cellNum = 0; cellNum <10 ; cellNum++) {
                //创建单元格
                Cell cell = row.createCell(cellNum);
                cell.setCellValue(cellNum);
            }
        }
        System.out.println("结束over");
        //创建流
        FileOutputStream fileOutputStream = new FileOutputStream(PATH + "testWrite03BigData.xls");
        //输出
        workbook.write(fileOutputStream);
        fileOutputStream.close();
        //结束时间
        long end = System.currentTimeMillis();
        //输出时间
        System.out.println((double) (end-begin)/1000);
    }

    @Test
    public void testWrite07BigData() throws IOException {
        long begin = System.currentTimeMillis();
        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet();
        for (int rowNum = 0; rowNum <100000 ; rowNum++) {
            Row row = sheet.createRow(rowNum);
            for (int cellNum = 0; cellNum <10 ; cellNum++) {
                Cell cell = row.createCell(cellNum);
                cell.setCellValue(cellNum);
            }
        }
        System.out.println("完成over");
        FileOutputStream fileOutputStream = new FileOutputStream(PATH + "testWrite07BigData.xlsx");
        workbook.write(fileOutputStream);
        fileOutputStream.close();
        long end = System.currentTimeMillis();
        System.out.println((double) (end-begin)/1000);
    }

    @Test
    public void testWrite07BigDataS() throws IOException {
        long begin = System.currentTimeMillis();
        Workbook workbook = new SXSSFWorkbook();
        Sheet sheet = workbook.createSheet();
        for (int rowNum = 0; rowNum <100000 ; rowNum++) {
            Row row = sheet.createRow(rowNum);
            for (int cellNum = 0; cellNum <10 ; cellNum++) {
                Cell cell = row.createCell(cellNum);
                cell.setCellValue(cellNum);
            }
        }
        System.out.println("完成over");
        FileOutputStream fileOutputStream = new FileOutputStream(PATH + "testWrite07BigDataS.xlsx");
        workbook.write(fileOutputStream);
        fileOutputStream.close();
        //清楚临时文件!
        ((SXSSFWorkbook) workbook).dispose();
        long end = System.currentTimeMillis();
        System.out.println((double) (end-begin)/1000);
    }
}

文件读出

package com.leitao;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
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.xssf.usermodel.XSSFWorkbook;
import org.junit.jupiter.api.Test;

import java.io.FileInputStream;
import java.io.IOException;

/**
 * @Description: TODO
 * @Author djn
 * @Date 2021/11/4
 * @Version V1.0
 **/
public class ExcelReadTest {
    String PATH="E:\\IdeaWorkSpace\\";
    @Test
    public void testRead03() throws IOException {
        //获取文件流
        FileInputStream fileInputStream = new FileInputStream(PATH + "个人信息统计表03版本.xls");
        //1、创建一个工作薄,使用Excel能操作的这边它都可以操作
        Workbook workbook = new HSSFWorkbook(fileInputStream);
        //2、得到表
        Sheet sheet = workbook.getSheetAt(0);
        //3、得到行
        Row row = sheet.getRow(1);
        //4、得到列
        Cell cell = row.getCell(2);
        //读取数据,一定要注意类型getStringCellValue字符串类型
        System.out.println(cell.getStringCellValue());
        fileInputStream.close();

    }

    @Test
    public void testRead07() throws IOException {
        FileInputStream fileInputStream = new FileInputStream(PATH + "个人信息统计表07版本.xlsx");
        Workbook sheets = new XSSFWorkbook(fileInputStream);
        Sheet sheetAt = sheets.getSheetAt(0);
        Row row = sheetAt.getRow(0);
        Cell cell = row.getCell(0);
        System.out.println(cell.getStringCellValue());
        fileInputStream.close();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java POI是一个用于操作Microsoft Office文档的开源Java API框架。它支持读取、写入和编辑各种Office格式的文档,如Word文档、Excel电子表格和PowerPoint演示文稿。 使用Java POI可以方便地生成、修改和处理Office文档。它提供了一组丰富的API,可以创建各种样式的文档,括设置字体、颜色、表格、图表等。同时,它也支持将数据从数据库中读取,然后将其填充到模板文件中,从而生成自定义的报表、邮件等。 Java POI的主要功能括: 1. 读取和写入Excel文件:可以将Excel文件读取为Java对象,也可以将Java对象写入到Excel文件中。通过POI,我们可以操作Excel中的单元格、行、列以及样式等信息。 2. 处理Word文档:可以读取、创建和编辑Word文档,可以设置字体、段落样式、页眉页脚、表格等。 3. 操作PowerPoint演示文稿:可以创建和编辑PowerPoint演示文稿,可以设置幻灯片的布局、文本框、图表、图片等。 Java POI具有良好的兼容性和稳定性,可以与各种版本的Microsoft Office套件无缝集成。同时,它还支持多种文件格式,括xls、xlsx、doc、docx、ppt、pptx等。 总之,Java POI是一个功能强大的工具,可以帮助开发者在Java中处理各种Office文档。无论是生成报表、处理数据还是编辑文档,都可以通过Java POI实现。它为我们提供了丰富的API,使得操作Office文件变得更加简单和高效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值