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();
    }
}
相关推荐
DolphinScheduler社区6 小时前
Apache DolphinScheduler 与 Spring Cloud Data Flow:差异与优势解析
spring·spring cloud·apache·海豚调度·大数据工作流调度
SeaTunnel12 小时前
Apache SeaTunnel 4 月有何新动作?连接器增强与 Zeta 稳定性提升等亮点速览
大数据·数据仓库·spark·apache·seatunnel
℡終嚸♂6802 天前
Apache Tomcat CVE-2025-55752 CTF Writeup
tomcat·apache·firefox
27669582922 天前
某白山小程序限制PC端调试
python·小程序·apache·小程序逆向·某白山·限制pc调试
杰建云1673 天前
商家小程序怎么做?
大数据·apache·小程序制作
小冷爱学习!4 天前
Apache Shiro 1.2.4 反序列化漏洞Shiro-550(CVE-2016-4437)
服务器·网络·python·安全·网络安全·apache
有趣灵魂4 天前
Java Spring Boot根据Word模板和动态数据生成Word文件
java·spring boot·word·apache
phltxy4 天前
分布式链路追踪实战:Apache SkyWalking 从入门到精通
分布式·apache·skywalking
大厂数码评测员5 天前
免费菜谱管理小程序怎么做才顺手:从情侣、个人、家庭三类场景拆需求和实现
服务器·小程序·apache