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();
    }
}
相关推荐
微软技术分享几秒前
Apache 2.4.68 编译安装与配置
人工智能·apache·知识图谱
DolphinScheduler社区31 分钟前
把 Apache DolphinScheduler 变成 Agent 的“手和脚”:从调度平台到自然语言数据入口
人工智能·开源·apache·agent·技术分享·海豚调度·大数据工作流调度
EEEEEEcho1 天前
为什么/admin Apache 返回 301 重定向,但是/admin/ 直接处理请求
apache
谢亮_vipxieliang1 天前
ValidX vs Apache Commons Validator:功能与性能对比
java·服务器·spring boot·后端·spring cloud·apache·hibernate
2601_962065494 天前
interface GigabitEthernet0/0/0
服务器·php·apache
JavaPub-rodert5 天前
Apache Jena 详解:Java 开发者如何真正搭起一套知识图谱与语义服务
java·apache·知识图谱
AOwhisky6 天前
Linux 网络服务架设学习笔记(第五期)——Web 服务(上篇):Apache HTTP Server——从静态到动态
linux·运维·服务器·笔记·学习·云计算·apache
JackSparrow4147 天前
Kafka(七)集成Apache Avro+Apicurio Schema Registry以保障生产者与消费者的消息兼容性
java·中间件·rpc·kafka·apache·avro·schema-registry
智码看视界7 天前
SenseNova U1.5 Lite 部署实测:8B 单卡跑通 4K 生图,Apache 2.0 免费商用
开源·apache·多模态·图像生成·ai生图·sensenova·商汤大模型
海兰11 天前
【 Kafka进阶5】使用 Docker 部署 Apache Kafka 集群完全指南
docker·kafka·apache