Apache—POI详解、小案例展示

简介:Apache POI 是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是,我们可以使用POI在Java程序中对Miscrosoft Office各种文件进行读写操作。

目录

1、应用场景

2、案例代码

[2.1 创建 Excel 文件](#2.1 创建 Excel 文件)

[2.2 读取 Excel 文件](#2.2 读取 Excel 文件)


1、应用场景

图 1-1 Apache POI应用场景
Apache POI应用场景: * 银行网银系统导出交易明细 * 各种业务系统导出Excel报表 * 批量导入业务数据

2、案例代码

2.1 创建 Excel 文件

java 复制代码
package com.sky.test;

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;

public class POITest {
    public static void main(String[] args) throws IOException {
        write();
    }

    /**
     * 通过POI创建Excel文件并且写入文件内容
     */
    public static void write() throws IOException {
        //创建一个Excel文件
        XSSFWorkbook excel = new XSSFWorkbook();
        //创建Excel中的单元测
        XSSFSheet sheet = excel.createSheet("info");
        //在sheet中创建行对象,rownum编号从零开始
        XSSFRow row = sheet.createRow(1);
        //创建单元格并且写入文件内容
        row.createCell(1).setCellValue("姓名");
        row.createCell(2).setCellValue("城市");
        //创建一个新行
        XSSFRow row1 = sheet.createRow(2);
        row1.createCell(1).setCellValue("王宁");
        row1.createCell(2).setCellValue("亳州");
        //创建一个新行
        XSSFRow row2 = sheet.createRow(2);
        row2.createCell(1).setCellValue("王宁");
        row2.createCell(2).setCellValue("亳州");
        //将内存中的Excel表格存储到指定的盘符下面
        FileOutputStream fileOutputStream = new FileOutputStream(new File("D:\\info.xlsx"));
        excel.write(fileOutputStream);
        //关闭资源
        excel.close();
        fileOutputStream.close();
    }
}

2.2 读取 Excel 文件

java 复制代码
package com.sky.test;

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

import java.io.*;

public class POITest {
    public static void main(String[] args) throws IOException {
        read();
    }

    /**
     * 通过POI读取Excel文件
     */
    public static void read() throws IOException{
        FileInputStream fileInputStream = new FileInputStream(new File("D:\\info.xlsx"));
        //创建一个Excel对象,用于读取Excle数据
        XSSFWorkbook excel = new XSSFWorkbook(fileInputStream);
        //读取Excel文件中的第一个Sheet页
        XSSFSheet sheet = excel.getSheetAt(0);
        //获取Sheet页中有数据的最后一行
        int lastRowNum = sheet.getLastRowNum();
        for (int i = 1; i <= lastRowNum; i++) {
            //获取某一行
            XSSFRow row = sheet.getRow(i);
            //获取当前行的单元格对象
            String cellValue1 = row.getCell(1).getStringCellValue();
            String cellValue2 = row.getCell(2).getStringCellValue();
            System.out.println(cellValue1 + " " + cellValue2);
        }
        //关闭资源
        excel.close();
        fileInputStream.close();
    }
}
相关推荐
HashData酷克数据14 小时前
流批一体的“奥卡姆剃刀”:Apache Cloudberry 增量物化视图应用解析
apache
lang2015092814 小时前
什么是Apache Ignite的affinity(亲和性)
apache
Apache IoTDB1 天前
Apache IoTDB V2.0.4 发布|新增用户自定义表函数及多种内置表函数功能
apache·iotdb
TracyCoder1232 天前
Apache Shiro 框架详解
安全·apache·shiro·认证·登录
SelectDB2 天前
Apache Doris 实时更新技术揭秘:为何在 OLAP 领域表现卓越?
数据库·数据分析·apache
__只是为了好玩__2 天前
Apache http 强制 https
http·https·apache·ssl
云游4 天前
利用外部Postgresql及zookeeper,启动Apache Dolphinscheduler3.1.9
分布式·postgresql·zookeeper·apache·工作流任务调度
Aurora_NeAr4 天前
Apache Iceberg数据湖基础
apache
源图客5 天前
Apache Nutch介绍与部署编译
apache·nutch
FreeBuf_5 天前
Apache组件遭大规模攻击:Tomcat与Camel高危RCE漏洞引发数千次利用尝试
java·tomcat·apache