Apache—POI详解、小案例展示

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

目录

1、应用场景

2、案例代码

2.1 创建 Excel 文件

2.2 读取 Excel 文件


1、应用场景

图 1-1 Apache POI应用场景

Apache POI应用场景:

  • 银行网银系统导出交易明细
  • 各种业务系统导出Excel报表
  • 批量导入业务数据

2、案例代码

2.1 创建 Excel 文件

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 文件

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();
    }
}

相关推荐

  1. Apache—POI详解案例展示

    2024-04-08 21:22:04       15 阅读
  2. Flask 账号详情展示

    2024-04-08 21:22:04       40 阅读
  3. 爬虫(案例

    2024-04-08 21:22:04       15 阅读

最近更新

  1. Jupyter Notebook详尽安装教程

    2024-04-08 21:22:04       0 阅读
  2. 实现淘客返利系统中的用户登录与权限管理

    2024-04-08 21:22:04       0 阅读
  3. 【力扣】每日一题—第70题,爬楼梯

    2024-04-08 21:22:04       1 阅读
  4. mysql快速精通(一)DQL数据查询语言

    2024-04-08 21:22:04       1 阅读
  5. 408第二轮复习 数据结构 第七章查找

    2024-04-08 21:22:04       1 阅读
  6. Python中的迭代器与可迭代对象的概念及其关系

    2024-04-08 21:22:04       1 阅读
  7. 大数据面试题之Greenplum(2)

    2024-04-08 21:22:04       1 阅读

热门阅读

  1. C语言 超市商品(Goods) 销售 (Stock) 信息管理软件

    2024-04-08 21:22:04       14 阅读
  2. PgSQL的with as语法

    2024-04-08 21:22:04       18 阅读
  3. 【LeetCode热题100】【栈】柱状图中最大的矩形

    2024-04-08 21:22:04       15 阅读
  4. vscode配置vue + python

    2024-04-08 21:22:04       16 阅读
  5. Cisco Nexus 93180做为fex使用

    2024-04-08 21:22:04       13 阅读
  6. LeetCode 1600.王位继承顺序:深度优先搜索(DFS)

    2024-04-08 21:22:04       12 阅读
  7. Acwing2024蓝桥杯贡献法

    2024-04-08 21:22:04       15 阅读
  8. KVM基础管理命令

    2024-04-08 21:22:04       14 阅读
  9. C++(10): std::map、std::multimap与std::unordered_map

    2024-04-08 21:22:04       11 阅读
  10. VUE 实现路由的基本原理

    2024-04-08 21:22:04       12 阅读
  11. 如何进行Python代码的调试和测试?

    2024-04-08 21:22:04       13 阅读
  12. C# 一种基于 event 和 委托的事件机制

    2024-04-08 21:22:04       15 阅读
  13. pytest中文使用文档----11测试的参数化

    2024-04-08 21:22:04       15 阅读
  14. Llama Index的NodeParser详解

    2024-04-08 21:22:04       16 阅读