Java 读写word文件(POI-EasyExcel) 学习笔记

本文详细介绍了Apache POI库在处理Excel时的写入和读取操作,包括03版和07版的差异,以及处理大文件时的不同策略。同时,文章还探讨了阿里巴巴的EasyExcel框架,强调了其内存效率和简单易用的特点。通过示例代码,展示了EasyExcel如何进行数据写入和读取。总结了两种库在处理Excel时的优缺点,为开发者提供了选择的依据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

谈谈 POI 和 easyExcel

① 常用进程
1、将用户信息导出为excel表格(导出数据 )
2、将Excel表中的信息录入到网站数据库(上传)
开发中经常会设计到excel的处理,如导出Excel,导入Excel到数据库中! 操作Excel目前比较流行的就是 Apache POI 和 阿里巴巴的 easyExcel !

② Apache POI
Apache POI 官网:https://poi.apache.org/

在这里插入图片描述
在这里插入图片描述

③ easyExcel

easyExcel 官网地址:https://github.com/alibaba/easyexcel
在这里插入图片描述

EasyExcel 是阿里巴巴开源的一个excel处理框架,以使用简单、节省内存著称。
EasyExcel 能大大减少占用内存的主要原因是在解析 Excel 时没有将文件数据一次性全部加载到内存中, 而是从磁盘上一行行读取数据,逐个解析。
下图是 EasyExcel 和 POI 在解析Excel时的对比图。
在这里插入图片描述

官方文档:https://www.yuque.com/easyexcel/doc/easyexcel

POI-Excel写

① 创建项目
1、建立一个空项目,创建普通Maven的Moudle
2、引入pom依赖

<dependencies>
 <!--xls(03)-->
  <dependency>
   <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.9</version> 
 </dependency> 
 <!--xlsx(07)-->
  <dependency>
   <groupId>org.apache.poi</groupId> 
   <artifactId>poi-ooxml</artifactId> 
   <version>3.9</version> 
  </dependency> 
  <!--日期格式化工具-->
   <dependency>
    <groupId>joda-time</groupId> 
    <artifactId>joda-time</artifactId> 
    <version>2.10.1</version> 
    </dependency> 
    <!--test--> 
    <dependency>
     <groupId>junit</groupId>
      <artifactId>junit</artifactId> 
      <version>4.12</version> 
     </dependency> 
</dependencies> 

② 03 | 07 版本的写,就是对象不同,方法一样的!

需要注意:2003 版本和 2007 版本存在兼容性的问题!03最多只有 65535 行!

package com.kuang; 
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.joda.time.DateTime; 
import org.junit.Test; 
import java.io.FileOutputStream; 
import java.io.IOException;


 public class ExcelWriteTest {
   
  String path = "D:\\狂神说Java\\【狂神】小专题\\POI-EasyExcel\\Bilibili-狂神 说java\\kuang-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.setCellValue("今日新增关注"); 
	// 创建单元格(col 1-2) 
	Cell cell12 = row1.createCell(1); cell12.setCellValue(999); 
	// 创建行(row 2) Row row2 = sheet.createRow(1); 
	// 创建单元格(col 2-1) Cell cell21 = row2.createCell(0); 
	cell21.setCellValue("统计时间"); 
	//创建单元格(第三列) 
	Cell cell22 = row2.createCell(1); 
	String dateTime = new DateTime().toString("yyyy-MM-dd HH:mm:ss"); 
	cell22.setCellValue(dateTime); 
	// 新建一输出文件流(注意:要先创建文件夹)
	FileOutputStream out = new FileOutputStream(path+"狂神观众统计表 03.xls");
	// 把相应的Excel 工作簿存盘 
	workbook.write
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值