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

荆州公司做网站网络营销文案实例

荆州公司做网站,网络营销文案实例,项目管理咨询公司,wordpress下一页EasyExcel简单实例 准备工作场景一:读取 Student 表需求1:简单读取需求2:读取到异常信息时不中断需求3:读取所有的sheet工作表需求4:读取指定的sheet工作表需求5:从指定的行开始读取 场景二:写入…

EasyExcel简单实例

  • 准备工作
  • 场景一:读取 Student 表
    • 需求1:简单读取
    • 需求2:读取到异常信息时不中断
    • 需求3:读取所有的sheet工作表
    • 需求4:读取指定的sheet工作表
    • 需求5:从指定的行开始读取
  • 场景二:写入 Student 表
    • 需求1:简单写入

准备工作

导入easyExcel依赖,注意版本:

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

场景一:读取 Student 表

需求1:简单读取

源表:
在这里插入图片描述

1. 编写实体类
可以使用 @ExcelProperty 指定数据封装为实体类对象的规则,后面可以跟index 和 列名(二选一);
若不加注解则按照默认封装规则: ①根据 Excel 列与实体类属性的顺序②根据 Excel 列的单元格式与对象字段类型匹配。

@Data
public class Student {@ExcelProperty("姓名")private String name;@ExcelProperty("年级")private String grade;@ExcelProperty("年龄")private int age;
}

2. 监听器
invoke():每读取一行就执行的方法,每一行数据会被封装成一个 student 对象(invoke方法的第一个参数);
doAfterAllAnalysed():读取结束后执行的方法;

class studentListener implements ReadListener<Student> {int i=1;@Overridepublic void invoke(Student student, AnalysisContext context) {System.out.println("读取到第 "+(i++)+" 行:"+student);}@Overridepublic void doAfterAllAnalysed(AnalysisContext context) {System.out.println("\nxlsx文件读取结束");}
}

3. 测试类
read():读取workbook工作簿,传入文件路径、实体类、监听器;
sheet():选定读取的工作表,默认读取第一个;
doRead():执行读操作;

public class easyExcelTest {@Testpublic void readTest() {String filePath = "C:\\Users\\liziq\\Desktop\\student.xlsx";EasyExcel.read(filePath,Student.class,new studentListener()).sheet().doRead();}
}

打印效果:
在这里插入图片描述

需求2:读取到异常信息时不中断

源表:
当出现了不符合数据类型的数据时,希望不中断读取
在这里插入图片描述
1. 实体类:
不变;
2. 监听器:
只需要调整监听器,在监听器加入 onException()方法;

class studentListener implements ReadListener<Student> {int i = 1;@Overridepublic void invoke(Student student, AnalysisContext context) {System.out.println("读取到第 " + (i++) + " 行:" + student);}@Overridepublic void doAfterAllAnalysed(AnalysisContext context) {System.out.println("\nxlsx文件读取结束");}@Overridepublic void onException(Exception exception, AnalysisContext context) throws Exception {System.out.println("读取异常:"+exception);}
}

3. 测试类:
不变;

打印效果:
异常数据被打印,且不中断读取;
在这里插入图片描述

需求3:读取所有的sheet工作表

源表:
此时多个sheet都有数据;
在这里插入图片描述

1. 实体类
不变;
2. 监听器
不变;
3. 测试类
将sheet().doRead改为 doReadAll()

public class easyExcelTest {@Testpublic void readTest() {String filePath = "C:\\Users\\liziq\\Desktop\\student.xlsx";EasyExcel.read(filePath,Student.class,new studentListener()).doReadAll();}
}

效果:
读取到了两个sheet的数据:
在这里插入图片描述

需求4:读取指定的sheet工作表

源表:
此时多个sheet都有数据;
在这里插入图片描述

1. 实体类
不变;
2. 监听器
不变;
3. 测试类
在sheet()中传递指定sheet的index索引或者名称即可:

public class easyExcelTest {@Testpublic void readTest() {String filePath = "C:\\Users\\liziq\\Desktop\\student.xlsx";EasyExcel.read(filePath,Student.class,new studentListener()).sheet("Sheet2").doRead();EasyExcel.read(filePath,Student.class,new studentListener()).sheet("Sheet1").doRead();}
}

效果:
此时先指定读取sheet2,再读取sheet1;
在这里插入图片描述

需求5:从指定的行开始读取

源表:
假设此时有多行表头,内容需要从第3行开始读取;
在这里插入图片描述

1. 实体类
不变;
2. 监听器
不变;
3. 测试类
使用 headRowNumber(),参数中填写开始读取的行数;(默认从第2行开始读取,即headRowNumber()默认参数是索引1);
此时读取的内容要从第3行开始,索引为2,所以填入headRowNumber()的参数为2!

public class easyExcelTest {@Testpublic void readTest() {String filePath = "C:\\Users\\liziq\\Desktop\\student.xlsx";EasyExcel.read(filePath,Student.class,new studentListener()).sheet("Sheet1").headRowNumber(2).doRead();}
}

效果:
在这里插入图片描述

场景二:写入 Student 表

需求1:简单写入

1. 实体类
需要比读取excel多添加实体类的构造函数;

@Data
public class Student {@ExcelProperty("姓名")private String name;@ExcelProperty("年级")private String grade;@ExcelProperty("年龄")private int age;public Student(){}public Student(String name, String grade, int age) {this.name = name;this.grade = grade;this.age = age;}
}

2. 模拟建数据的类
将每一行数据封装为Student对象,并放入一个List集合中;

class CreateData{public static List<Student> create(){List<Student> datas = Arrays.asList(new Student("张三","一年级",23),new Student("里斯","一年级",19),new Student("王五","一年级",22),new Student("赵六","一年级",21));return datas;}
}

3. 测试类
写的时候会自动将实体类的属性作为excel表的表头;
sheet()的参数为写入的工作表;
doWrite()的参数为要写入的数据,要求格式为Collection集合类型;

public class easyExcelTest {@Testpublic void writeTest() {String filePath = "C:\\Users\\liziq\\Desktop\\student.xlsx";EasyExcel.write(filePath,Student.class).sheet("学生表1").doWrite(CreateData.create()); // doWrite()的参数为 Collection 集合}

效果:
成功生成指定sheet表的数据!
在这里插入图片描述

http://www.hkea.cn/news/631793/

相关文章:

  • 深圳市做网站的有那些公司沈阳百度推广哪家好
  • 用flash做网站教程个人发布信息免费推广平台
  • 网站主题页网站模板中心
  • 制作网页用什么进行页面布局seo优化方案案例
  • 国外经典平面设计网站做网站的费用
  • 学校营销型网站建设最新长尾关键词挖掘
  • 服务网络是什么意思上海关键词排名优化价格
  • 黑龙江做网站哪家好下载官方正版百度
  • 实时网站制作网站关键字优化
  • 商城网站要多少钱网页制作app
  • 做网站前端难吗个人网站
  • 怎么做亚马逊网站百度小说排行榜2020
  • 山东省建设文化传媒有限公司网站网站排名查询工具有哪些
  • 营销型企业网站有哪些网站建设找哪家好
  • 玉环做企业网站任何东西都能搜出来的软件
  • 无锡专业网站建设搜索优化seo
  • 成品软件源码网站大全百度权重10的网站
  • 深圳手机网站建设多少钱外链代发软件
  • 璧山集团网站建设互联网推广营销
  • 平面设计网址推荐全国seo搜索排名优化公司
  • 青岛公路建设集团网站东莞排名优化团队
  • 北京公司响应式网站建设价位太原网站建设开发
  • 龙岩网络诈骗通缉人员优化推广方案
  • 专做海外代购的网站设计案例网
  • 漳州网站设计东莞网站制作模板
  • 制作应用的软件成都排名seo公司
  • 北京专业企业网站建设俄罗斯搜索引擎入口 yandex
  • wordpress 怎么改中文网站推广优化价格
  • 南山做网站公司怎么选择企业seo优化服务
  • 什么 电子商务网站建设与管百度招商加盟