POI报表
需求说明
在企业级应用开发中,Excel报表是一种常见的报表需求,Excel报表开发一般分为两种形式:
- 为了方便操作,基于Excel的报表批量上传数据
- 通过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();
}
网友评论