使用Java操作Excel

1.引入依赖
xml 复制代码
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>3.1.3</version>
        </dependency>
2.编写实体类,用注解映射Excel表格属性
java 复制代码
@Data
public class Excel {
    @ExcelProperty("用户名")
    @ColumnWidth(20)
    private String name;
    @ExcelProperty("性别")
    @ColumnWidth(20)
    private String sex;
}
3.编写Java代码向Excel表格写入文件
  • 定义Excel路径
java 复制代码
  String fileName = "用户信息.xlsx";
  • 准备好要写入Excel文件里的内容
java 复制代码
    private static List<Excel> data() {
        // 准备一些测试数据
        List<Excel> list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            Excel excel = new Excel();
            excel.setName("张三" + i);
            excel.setSex("男");
            list.add(excel);
        }
        return list;
    }
  • 在测试类里调用EasyExce里的的静态方法传入文件路径,实体类,要写入的数据执行写入数据操作即可完成Excel内容写入工作
4.编写Java代码读取Excel里的数据
  • 创建监听器类来处理每一行的数据
java 复制代码
public class ExcelListener extends AnalysisEventListener<Excel> {
    private List<Excel> dataList = new ArrayList<>();

    @Override
    public void invoke(Excel data, AnalysisContext context) {
        dataList.add(data);
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
        // 所有数据解析完成后的操作
    }

    public List<Excel> getDataList() {
        return dataList;
    }
}
  • 使用 EasyExcel来读取文件

  • 定义文件路径

java 复制代码
String fileName = "用户信息.xlsx";
  • 创建监视器执行读取方法
java 复制代码
ExcelListener listener = new ExcelListener();
EasyExcel.read(fileName, UserData.class, listener).sheet().doRead();
  • 访问读取的数据
java 复制代码
List<UserData> dataList = listener.getDataList();
for (UserData userData : dataList) {
System.out.println("用户名:" + userData.getUsername() + ", 年龄:" + userData.getAge());}
相关推荐
苍煜31 分钟前
慢SQL优化实战教学
java·数据库·sql
AI进化营-智能译站34 分钟前
ROS2 C++开发系列16-智能指针管理传感器句柄|告别ROS2节点内存泄漏与野指针
java·c++·算法·ai
zhaoyong2221 小时前
MySQL 存储过程中字符集与排序规则不匹配导致查询性能下降的解决方案
jvm·数据库·python
sinat_383437361 小时前
golang如何从Python转型Go开发_golang从Python转型Go开发攻略
jvm·数据库·python
TeDi TIVE1 小时前
springboot和springframework版本依赖关系
java·spring boot·后端
二哈赛车手1 小时前
新人笔记---ES和kibana启动问题以及一些常用的linux的错误排查方法,以及ES,数据库泄密解决方案[超详细]
java·linux·数据库·spring boot·笔记·elasticsearch
rockey6271 小时前
基于AScript的python3脚本语言发布啦!
python·c#·.net·script·python3·eval·expression·function·动态脚本
嵌入式×边缘AI:打怪升级日志1 小时前
嵌入式Linux开发核心自测题(全系列精华浓缩)
java·linux·运维
gqk011 小时前
Python入门
python
FQNmxDG4S2 小时前
JVM内存模型详解:堆、栈、方法区与垃圾回收
java·jvm·算法