当前位置: 首页 > news >正文

springBoot集成easyExcel 实现文件上传

文件上传案例

添加依赖

		<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version></dependency>

添加实体对象

import lombok.Data;@Data
public class Student {private Long id;//姓名private String name;//班级private String classes;//所属学院private String college;//别名private String alias;
}

添加对象监听器

package com.wl.std.kaixin.listener;import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.wl.std.kaixin.controller.Student;
import lombok.Getter;import java.util.ArrayList;
import java.util.List;public class StudentListener extends AnalysisEventListener<Student> {@Getterprivate List<Student> studentList = new ArrayList<>();public StudentListener(){super();studentList.clear();}/*** 每一条数据解析都会调用*/@Overridepublic void invoke(Student student, AnalysisContext analysisContext) {studentList.add(student);}/*** 所有数据解析完成都会调用*/@Overridepublic void doAfterAllAnalysed(AnalysisContext analysisContext) {studentList.forEach(System.out::println);}
}

添加controller

package com.wl.std.kaixin.controller;import com.alibaba.excel.EasyExcel;
import com.wl.std.kaixin.listener.StudentListener;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import java.util.List;@RequestMapping("/excel")
@Controller
public class OperateExcelController {//方法1:读取指定的Excel@GetMapping(value = "/readExcel")@ResponseBodypublic List<Student> readExcel() {String fileName = "student.xls";StudentListener teacherListener = new StudentListener();EasyExcel.read(fileName, Student.class, teacherListener).sheet().doRead();return teacherListener.getStudentList();}
}

编写一个excel 实现读取excel 的数据的功能
在这里插入图片描述
代码运行效果:
在这里插入图片描述
注意高版本的JDK 可能会报反射错误,需要添加JVM 参数
java.lang.ClassFormatError accessible: module java.base does not “opens java.lang” to unnamed module @7229724f 错误信息
在启动参数里添加如下信息
–add-opens java.base/java.lang=ALL-UNNAMED
开发工具中添加如下:
在这里插入图片描述

http://www.dtcms.com/a/323181.html

相关文章:

  • WinForm 中 ListView 控件的实战应用与功能拓展
  • 集成电路学习:什么是RViz机器人可视化工具
  • Java 时间和空间复杂度
  • 徘徊识别场景误报率↓77%:陌讯动态时序建模方案实战解析
  • 二叉搜索树的C语言实现
  • 《软件测试与质量控制》实验报告五 功能自动化测试
  • 掌握数据可视化:全局配置项详解
  • Java进阶之单列集合List接口下的通用方法
  • Ubuntu22.04 安装vitis2023.2 卡在“Generating installed device list“.
  • 【Datawhale AI夏令营】让AI读懂财报PDF(多模态RAG)(Task 2)
  • 用 C 语言深入理解 Linux 软链接:原理、API 与编程实践
  • 【CTF】PHP反序列化基础知识与解题步骤
  • Claude Code 的核心能力与架构解析
  • Alibaba Cloud Linux 3 生成 github 公钥
  • 【Word】行中包含英文字符致使下划线加粗的解决方法
  • 3款强力的Windows系统软件卸载工具
  • 理解协议最大传输单元(MTU)和TCP 最大报文段长度(MSS)
  • 力扣热题100------70.爬楼梯
  • 从零学习three.js官方文档(一)——基本篇
  • 每日五个pyecharts可视化图表-line:从入门到精通
  • 记录一次ubuntu20.04 解决gmock not found问题的过程
  • Spring 框架中提供Aware接口,实现感知容器对象
  • 机器学习——模型的简单优化
  • CPU缓存(CPU Cache)和TLB(Translation Lookaside Buffer)缓存现代计算机体系结构中用于提高性能的关键技术
  • 盟接之桥说制造:以品质为基,消费者导向差异而生
  • Linux系统编程Day10 -- 进程管理
  • CTF常用工具汇总(二)
  • 【32】C#实战篇——两个文件夹下 相同名字的文件 进行配对(两个文件夹下的文件数量和文件类型不一定相同,所以要过滤掉我们不要的文件)
  • ArkUI中的布局组件Row(一)
  • 计算机网络1-6:计算机网络体系结构