POI操作Excel

POI报表

需求说明

在企业级应用开发中,Excel报表是一种常见的报表需求,Excel报表开发一般分为两种形式:

  1. 为了方便操作,基于Excel的报表批量上传数据
  2. 通过java代码生成Excel报表

Excel的两种形式

目前市面上的Excel分为两个大的版本:Excel2003和Excel2007及以上两个版本

两个版本之间的区别:

Excel 2003 Excel 2007
后缀 xls xlsx
结构 二进制格式,核心结构是复合文档类型的结构 xml类型结构
单sheet数据量 行:65535 列:256 行:1048576 列:16384
特点 存储容量有限 基于xml压缩,占用空间小,操作效率高

常见Excel操作工具

java中常见的用来操作Excel的方式一般有两种:JXL和POI

  • JXL老旧 不维护了
  • POI:apache项目,可以对微软的Word,Excel,Ppt进行操作

POI

Apache POI是Apache软件基金会的开源项目,由Java平台编写的免费开源的跨平台的JAVA Api,Apache POI提供API给Java语言操作Microsoft office功能

API介绍

  • 工作簿:WorkBook(HssfWordBook:2003版本,XssfWorkBook:2007级以上)
  • 页:Sheet
  • 行:Row
  • 单元格:Cell

入门案例

环境搭建

创建工程:poi_demo maven项目

导入maven坐标

创建Excel

try {
            //创建工作簿
            Workbook wb = new XSSFWorkbook();
            //创建页
            Sheet sheet = wb.createSheet();
            //创建行
            Row row = sheet.createRow(1);//1代表索引 代指第二行
//创建一个单元格
            Cell cell = row.createCell(2);//2代指索引 代指第三个单元格
            //写入数据
            cell.setCellValue("添加的单元格");
            //保存文件
            wb.write(new FileOutputStream("/Users/wangxin/Documents/excel1.xlsx"));

        } catch (IOException e) {
            e.printStackTrace();
        }

读取Excel表

try {
            XSSFWorkbook wb = new XSSFWorkbook("/Users/wangxin/Documents/excel1.xlsx");
            //读取指定页 sheet
            XSSFSheet sheet = wb.getSheetAt(0);
            //读取指定的行
            XSSFRow row = sheet.getRow(1);
            //读取指定单元格
            XSSFCell cell = row.getCell(2);
            //读取单元格数据
            String stringCellValue = cell.getStringCellValue();
            System.out.println(stringCellValue);
        } catch (IOException e) {
            e.printStackTrace();
        }

推荐阅读更多精彩内容