Apache POI简单操作excel

Apache POI是Java中用于操作Microsoft Office格式档案的API,特别适合处理Excel文件。本文介绍了如何入门Apache POI,包括读取Excel的步骤:添加maven坐标,创建测试类并处理可能出现的异常,以及如何写入Excel。最后讨论了将这些操作封装为工具类的实用性。

Apache POI

Apache POI是用Java编写的免费开源的跨平台的Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能,其中使用最多的就是使用POI操作Excel文件。
Apache POI可以操作几乎office系列所有的软件,提供了非常丰富的api,但最常用的是excel报表和批量导入,还有word自动生成报告。本篇以操作excel为例,说明Apache POI的简单用法。

入门(读取excel)

一、jar包(maven坐标):

<dependency>
  <groupId>org.apache.poi</groupId>
  <artifactId>poi</artifactId>
  <version>3.14</version>
</dependency>
<dependency>
  <groupId>org.apache.poi</groupId>
  <artifactId>poi-ooxml</artifactId>
  <version>3.14</version>
</dependency>

二、创建一个测试类:

package pers.buyusan.utils;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.IOException;

/**
 * @author buyusan
 * @Description
 * @date 2019-08-01 16:31
 **/
public class POIDemo {
    public static void main(String[] args) throws IOException {
        //创建工作簿
        XSSFWorkbook workbook = new XSSFWorkbook("D:\\hello.xlsx");
        //获取工作表,既可以根据工作表的顺序获取,也可以根据工作表的名称获取
        XSSFSheet sheet = workbook.getSheetAt(0);
        //遍历工作表获得行对象
        for (Row row : sheet) {
            //遍历行对象获取单元格对象
            for (Cell cell : row) {
                //获得单元格中的值
                String value = cell.getStringCellValue();
                System.out.println(value);
            }
            System.out.println("============");
        }
        workbook.close();
    }
}

由于我们在读取路径的时候用了"D:\\hello.xlsx",所以我们在D盘目录下创建一个xlsx文件(xls):
内容如图:
在这里插入图片描述

三、运行测试类查看结果:

在这里插入图片描述
结果中的异常是由于我在运行程序时文件正在打开状态。
关闭文件后运行就不会报错了。
通过Apache POI读取excel的案例就完成了。
接下来通过POI进行excel的写操作。与读操作类似。

写出到excel

一、jar包(maven坐标)

同上

二、创建一个测试类:

package pers.buyusan.utils;

import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

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

/**
 * @author buyusan
 * @Description
 * @date 2019-08-01 16:31
 **/
public class POIDemo {
    public static void main(String[] args) throws IOException {
        //在内存中创建一个Excel文件
        XSSFWorkbook workbook = new XSSFWorkbook();
        //创建工作表,指定工作表名称
        XSSFSheet sheet = workbook.createSheet("fxm");
        //创建行,0表示第一行
        XSSFRow row = sheet.createRow(0);
        //创建单元格,0表示第一个单元格
        row.createCell(0).setCellValue("编号");
        row.createCell(1).setCellValue("名称");
        row.createCell(2).setCellValue("年龄");

        XSSFRow row1 = sheet.createRow(1);
        row1.createCell(0).setCellValue("1");
        row1.createCell(1).setCellValue("不与三");
        row1.createCell(2).setCellValue("17");

        XSSFRow row2 = sheet.createRow(2);
        row2.createCell(0).setCellValue("2");
        row2.createCell(1).setCellValue("小米");
        row2.createCell(2).setCellValue("18");

        //通过输出流将workbook对象下载到磁盘
        FileOutputStream out = new FileOutputStream("D:\\buyusan.xlsx");
        workbook.write(out);
        out.flush();
        out.close();
        workbook.close();
    }
}

三、运行测试类查看结果:

在这里插入图片描述
程序正常结束,去d盘找到buyusan.xlsx文件:
在这里插入图片描述
成功运行。

工具类

一种比较常用的方式是将数据写入excel文件,然后通过POI读取数据,因此在开发中可以将这类功能根据需求写成工具类,通过静态方法调用。由于不同场景需要的工具类都不同,具体问题需要具体分析。随着对POI的深入了解,通过java操作office将不再是问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值