Java使用EasyExcel实现对excel文件的读写

本文介绍了Java使用EasyExcel进行Excel文件读写操作。EasyExcel是阿里巴巴开源的Java工具库,具有简单易用、高效等特点。文中详细说明了使用步骤,包括引入库、创建实体类等,还总结了其常用API,能满足不同场景下的Excel读写需求。

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


前言

提示:这里可以添加本文要记录的大概内容:

在学习Java中难免会有对文件的读写操作,像word文档、pdf文件以及excel表。这些读写操作都大差不差,接下来为大家讲解一下Java对excel表的读写操作。


提示:以下是本篇文章正文内容,下面案例可供参考

一、EasyExcel是什么?

EasyExcel是阿里巴巴开源的一款基于Java语言的简单、高效、功能强大的Excel读写工具库。它提供了简单易用的API,可以帮助Java开发者在项目中轻松地进行Excel文件的读写操作,支持读取和写入Excel文件,同时支持常见的Excel格式,如.xls和.xlsx。

EasyExcel具有以下主要特点:

  1. 简单易用:EasyExcel提供了简洁清晰的API,使得开发者可以轻松地进行Excel文件的读写操作,无需过多的复杂配置。
  2. 高效性能:EasyExcel采用了基于流的方式进行Excel文件的读写,同时使用了缓冲区等技术来提升读写效率,具有较高的性能。
  3. 功能强大:EasyExcel支持对Excel文件进行灵活的读写操作,可以读取Excel文件中的数据并转换为Java对象,也可以将Java对象的数据写入到Excel文件中。
  4. 跨平台兼容性:EasyExcel是基于Java语言开发的,可以在各种操作系统上运行,且支持读写各种常见的Excel格式,如.xls和.xlsx等。
  5. 可扩展性:EasyExcel提供了丰富的扩展点和接口,开发者可以根据自己的需求进行定制和扩展,满足不同场景下的需求。

总的来说,EasyExcel是一款功能强大且易于使用的Java Excel处理工具库,被广泛应用于各种Java项目中,特别是对Excel文件读写操作比较频繁的业务场景。

官方文档地址EasyExcel

二、使用步骤

1.引入库

我们创建maven项目,在pom.xml文件中添加依赖:

       <!--easy excel依赖-->
       <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>3.3.4</version>
        </dependency>

        <!--lombok依赖  用来生成getter/setter/构造函数的-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.30</version>
        </dependency>

2.创建实体类

代码如下(示例):

@Data   //提供getter/setter
@NoArgsConstructor  //无参构造
@AllArgsConstructor  //含有全部参数的构造
public class Goods {
   

    @ExcelIgnore   //easyexcel注解 表示读写excel表忽略此列
    int id;

    @ExcelProperty("编码")   //easyexcel注解 表示读写excel表对列名为“编码”进行读写
    String code;

    @ExcelProperty("名称")
    String name;

    @ExcelProperty("价格")
    double price;

    @ExcelProperty("库存")
    int num;

    @ExcelProperty("重量")
    double weight;

    @ExcelProperty("cpu")
    String cpu;

    @ExcelProperty("内存")
    String memory;

    @ExcelProperty("机身内存")
    String bodyMemory;

    @ExcelIgnore
    String createTime;

    @ExcelIgnore
    String updateTime;

    @ExcelIgnore
    String categoryCode;
}

3建立数据库

因为我们在读写操作时需要有一定的数据源才能把读写操作更加明显。

/*
 Navicat Premium Data Transfer

 Source Server         : RpWn
 Source Server Type    : MySQL
 Source Server Version : 50735 (5.7.35)
 Source Host           : localhost:3306
 Source Schema         : demo

 Target Server Type    : MySQL
 Target Server Version : 50735 (5.7.35)
 File Encoding         : 65001

 Date: 26/03/2024 16:39:43
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for goods
-- ----------------------------
DROP TABLE IF EXISTS `goods`;
CREATE TABLE `goods`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `code` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `price` decimal(10, 2) NULL DEFAULT NULL,
  `num` int(11) NULL DEFAULT 0,
  `weight` decimal(10, 2) NULL DEFAULT NULL,
  `cpu` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `memory` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `bodyMemory` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `createTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `updateTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `isdel` bit(1) NULL DEFAULT b'0',
  `categoryCode` varchar(7) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 297 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Records of goods
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值