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

EASYEXCEL(一)

1.读取excel

读监听器


@Slf4j
public class StudentReadListener extends AnalysisEventListener<Student> {// 每读一样,会调用该invoke方法一次@Overridepublic void invoke(Student data, AnalysisContext context) {System.out.println("data = " + data);log.info(data + "保存成功");}// 全部读完之后,会调用该方法@Overridepublic void doAfterAllAnalysed(AnalysisContext context) {// TODO......}
}

映射实体类


@Data
@AllArgsConstructor
@NoArgsConstructor
@ColumnWidth(20)
@ToString
public class Student {/*** id*/@ExcelProperty(value = "编号",index = 0)//@ExcelIgnoreprivate String id;/*** 学生姓名*/@ExcelProperty(value = "学生姓名", index = 1)//@ColumnWidth(30)private String name;/*** 学生性别*/@ExcelProperty(value = "学生性别", index = 2)private String gender;/*** 学生出生日期*/@ExcelProperty(value = "学生出生日期", index = 3)//@ColumnWidth(20)private Date birthday;

 读取

public class StudentReadDemo {public static void main(String[] args) throws FileNotFoundException {// 读取文件,读取完之后会自动关闭/*pathName        文件路径;"C:\\Users\\wjg\\Desktop\\学员信息.xlsx"head            每行数据对应的实体;Student.classreadListener    读监听器,每读一样就会调用一次该监听器的invoke方法sheet方法参数: 工作表的顺序号(从0开始)或者工作表的名字,不传默认为0*/// 封装工作簿对象ExcelReaderBuilder workBook = EasyExcel.read("C:\\Users\\wjg\\Desktop\\学员信息.xlsx", Student.class, new StudentReadListener());// 封装工作表ExcelReaderSheetBuilder sheet1 = workBook.sheet();// 读取sheet1.doRead();}

2.写入excel

public class StudentWriteDemo {public static void main(String[] args) {List<Student> students = initData();/*String pathName 写入文件的路径Class head      写入文件的对象类型默认写入到07的xlsx中,如果想要写入xls,可以指定类型(待验证)*/ExcelWriterBuilder workBook = EasyExcel.write("C:\\Users\\wjg\\Desktop\\学员信息.xlsx", Student.class);// sheet方法参数: 工作表的顺序号(从0开始)或者工作表的名字workBook.sheet().doWrite(students);}private static List<Student> initData() {ArrayList<Student> students = new ArrayList<Student>();Student data = new Student();for (int i = 0; i < 10; i++) {data.setName("学号0" + i);data.setBirthday(new Date());data.setGender("男");data.setId(String.valueOf(i));students.add(data);}return students;}
}

http://www.lryc.cn/news/242105.html

相关文章:

  • 竞赛YOLOv7 目标检测网络解读
  • 第一类曲线积分@对弧长的曲线积分
  • 【TypeScript】常见数据结构与算法(二):链表
  • 原型模式 (Prototype Pattern)
  • 项目总结报告(案例模板)
  • C++ Qt QByteArray用法介绍
  • 蓝桥杯物联网竞赛_STM32L071_3_Oled显示
  • python-opencv轮廓检测(外轮廓检测和全部轮廓检测,计算轮廓面积和周长)
  • LeetCode [简单] 1. 两数之和
  • C++设计模式之工厂模式(下)——抽象工厂模式
  • 2023亚太杯数学建模A题思路分析 - 采果机器人的图像识别技术
  • 关于Flink的旁路缓存与异步操作
  • MyBatis-Plus的分页插件和乐观锁插件
  • 批量将本地N个英文Html文档进行中文翻译-操作篇
  • 解决cad找不到vcruntime140.dll的方法,实测有效的5个的方法
  • 2023亚太杯数学建模C题:我国新能源电动汽车的发展趋势,思路模型代码
  • 英语学习-爆破音
  • 【Vue】图片切换
  • C++模拟如何实现vector的方法
  • 芯知识 | 混音播报语音芯片的优势:革新音频应用的新力量
  • Arduino驱动PT100数字K型高温传感器(温湿度传感器)
  • 【C/PTA —— 11.函数2(课外实践)】
  • 2023 Unite 大会关于“Muse“ AI 大模型训练
  • Day28|Leetcode 93. 复原 IP 地址 Leetcode 78. 子集 Leetcode 90. 子集 II
  • 【Java 进阶篇】Jedis 操作 String:Redis中的基础数据类型
  • MySQL 8 配置文件详解与最佳实践
  • K8s client go 创建CRD的informer
  • 使用jmx_exporter监控Kafka
  • 什么是网络爬虫技术?它的重要用途有哪些?
  • Android MemoryFile 共享内存