目录
1.谈谈 POI 和 easyExcel
应用场景
- 1.将用户信息导出为excel表格(导出数据....)
- 2.将Excel表中的信息录入到网站数据库(习题上传....)
开发中经常会设计到excel的处理,如导出Excel,导入Excel到数据库中!
操作Excel目前比较流行的就是 Apache POI 和 阿里巴巴的 easyExcel !
Apache POI
Apache POI 官网:https://poi.apache.org/
比较复杂
Excel是03版本的,行数有限制65535行
Excel OOXML 是07版本的,行数没有限制
easyExcel
由于POI比较复杂,就衍生了一个框架easyExcel
easyExcel 官网地址:https://github.com/alibaba/easyexcel
EasyExcel 是阿里巴巴开源的一个excel处理框架,以使用简单、节省内存著称。
EasyExcel 能大大减少占用内存的主要原因是在解析 Excel 时没有将文件数据一次性全部加载到内存中, 而是从磁盘上一行行读取数据,逐个解析。
下图是 EasyExcel 和 POI 在解析Excel时的对比图。
官方文档(旧):https://www.yuque.com/easyexcel/doc/easyexcel
官方文档(新):https://easyexcel.opensource.alibaba.com/docs/current/
2.POI-Excel写
- 1.建立一个空项目 shuangma-poi,并配置1.8的项目结构,然后创建普通Maven的Moudle jiang-poi
- 2.引入pom依赖
<dependencies>
<!--xls(03)-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.2</version>
</dependency>
<!--xlsx(07)-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.2</version>
</dependency>
<!--日期格式化工具-->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.12.1</version>
</dependency>
<!--test-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
</dependency>
</dependencies>
03 | 07 版本的写,就是对象不同,方法一样的!
需要注意:2003 版本和 2007 版本存在兼容性的问题!03最多只有 65535 行!
工作簿、工作表、行、单元格
03版本:HSSFWorkbook
07版本:HSSFWorkbook
07升级版(加快速度处理07版本):SHSSFWorkbook
03版本:
public class ExcelWriteTest {
String path = "H:\\java全栈\\企业常用第三方技术\\POI\\shuangma-poi";
@Test
public void testWrite03() throws IOException {
// 创建新的Excel 工作簿
Workbook workbook = new HSSFWorkbook();
// 在Excel工作簿中建一工作表,其名为缺省值 Sheet0
//Sheet sheet = workbook.createSheet();
// 如要新建一名为"会员登录统计"的工作表,其语句为:
Sheet sheet = workbook.createSheet("雙馬粉丝统计表");
// 创建行(row 1)
Row row1 = sheet.createRow(0);
// 创建单元格(col 1-1)
Cell cell11 = row1.createCell(0);
cell11.s