JAVA报表开发-POI处理EXCEL-介绍
添加所需的依赖:
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.0.1</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.0.1</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>4.0.1</version> </dependency>
1、POI操作Excel高低版本区别
在POI包中有如下几个主要对象和excel的几个对象对应:
对应excel名称 | 低版本中的类名 | 高版本中的类名 |
---|---|---|
工作簿 | HSSFWorkbook | XSSFWorkbook |
工作表 | HSSFSheet | XSSFSheet |
行 | HSSFRow | XSSFRow |
单元格 | HSSFCell | XSSFCell |
单元格样式 | HSSFCellStyle | XSSFCellStyle |
入门案例代码:创建一个新的工作薄,里面随便写一句话
操作低版本:
package com.itheima.demo; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileOutputStream; public class POIDemo01 { public static void main(String[] args) throws Exception{ Workbook workbook = new HSSFWorkbook(); //创建了一个全新(里面什么都没有)的工作薄 Sheet sheet = workbook.createSheet("demo测试"); //创建了一个全新(里面什么都没有)的工作表 Row row = sheet.createRow(0); //创建了第一行(空的) Cell cell = row.createCell(0);//创建的是第一行的第一个单元格 cell.setCellValue("这是我第一次玩POI"); // 把工作薄输出到本地磁盘 workbook.write(new FileOutputStream("d://test.xls")); } }
操作高版本:
package com.itheima.demo; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileOutputStream; public class POIDemo02 { public static void main(String[] args) throws Exception{ Workbook workbook = new XSSFWorkbook(); //创建了一个全新(里面什么都没有)的工作薄 Sheet sheet = workbook.createSheet("demo测试"); //创建了一个全新(里面什么都没有)的工作表 Row row = sheet.createRow(0); //创建了第一行(空的) Cell cell = row.createCell(0);//创建的是第一行的第一个单元格 cell.setCellValue("这是我第一次玩POI"); // 把工作薄输出到本地磁盘 workbook.write(new FileOutputStream("d://test.xlsx")); } }
比较上面两个代码会发现,在开发中只是类的名称不一样,方法是一样的。