• EASYEXCEL(一)


    1.读取excel

    读监听器

    1. @Slf4j
    2. public class StudentReadListener extends AnalysisEventListener<Student> {
    3. // 每读一样,会调用该invoke方法一次
    4. @Override
    5. public void invoke(Student data, AnalysisContext context) {
    6. System.out.println("data = " + data);
    7. log.info(data + "保存成功");
    8. }
    9. // 全部读完之后,会调用该方法
    10. @Override
    11. public void doAfterAllAnalysed(AnalysisContext context) {
    12. // TODO......
    13. }
    14. }

    映射实体类

    1. @Data
    2. @AllArgsConstructor
    3. @NoArgsConstructor
    4. @ColumnWidth(20)
    5. @ToString
    6. public class Student {
    7. /**
    8. * id
    9. */
    10. @ExcelProperty(value = "编号",index = 0)
    11. //@ExcelIgnore
    12. private String id;
    13. /**
    14. * 学生姓名
    15. */
    16. @ExcelProperty(value = "学生姓名", index = 1)
    17. //@ColumnWidth(30)
    18. private String name;
    19. /**
    20. * 学生性别
    21. */
    22. @ExcelProperty(value = "学生性别", index = 2)
    23. private String gender;
    24. /**
    25. * 学生出生日期
    26. */
    27. @ExcelProperty(value = "学生出生日期", index = 3)
    28. //@ColumnWidth(20)
    29. private Date birthday;

     读取

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

    2.写入excel

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

  • 相关阅读:
    30天消化MyBatis源码解析笔记,吊打面试官,offer接到手软
    fast guide filter原理详解
    使用虚拟机Ubuntu进行MPI环境搭建
    Docker安装入门教程
    即使密码正确,App Store可能也会不断询问密码,那么如何修复呢
    深度学习(五)之原型网络
    Firefox扩展目录
    Java元注解 @Inherited 解析
    LINUX命令-sed
    Linux中断系统
  • 原文地址:https://blog.csdn.net/qq_44981598/article/details/134545032