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

EASYEXCEL(一)

1.读取excel

读监听器


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

    // 全部读完之后,会调用该方法
    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
        // TODO......
    }
}

映射实体类


@Data
@AllArgsConstructor
@NoArgsConstructor
@ColumnWidth(20)
@ToString
public class Student {

    /**
     * id
     */
    @ExcelProperty(value = "编号",index = 0)
    //@ExcelIgnore
    private 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.class
            readListener    读监听器,每读一样就会调用一次该监听器的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;
    }
}

相关文章:

  • 有一种浪漫,叫接触Linux
  • 面试:ShardingSphere问题
  • 服务器数据恢复—服务器重装系统导致逻辑卷发生改变的数据恢复案例
  • 笔记二十、使用路由Params进行传递参数
  • JAVA文件IO, File类, 字符流,字节流
  • vue+uniapp校园寻物失物招领平台 微信小程序1f6z5
  • 振南技术干货集:znFAT 硬刚日本的 FATFS 历险记(8)
  • nodejs669在线图书借阅管理系统vue前端
  • Matlab进阶绘图第34期—双三角热图
  • 机器学习的复习笔记2-回归
  • springBoot设置多数据源
  • css实现水波纹效果
  • 2024年天津艺术职业学院专升本报名工作的通知
  • python读取PDF文件中的指定页码的范围并存储到指定的文件名
  • Java中的Integer.bitCount浅析
  • 初识JVM(简单易懂),解开JVM神秘的面纱
  • C语言面试之旅:掌握基础,探索深度(面试实战之c语言关键词中篇)
  • 04_Flutter自定义Slider滑块
  • filebeat(远程收集日志工具)
  • 大模型训练为什么用A100不用4090
  • 虚假认定实质性重组、高估不良债权价值,原中国华融资产重庆分公司被罚180万元
  • 治沙“异瞳”男生疑似摆拍,团队称合作12天多期视频为策划拍摄
  • 首批证券公司科创债来了!拟发行规模超160亿元
  • 马上评|持续对标国际一流,才有22项“全球最优”
  • 关税风暴下,3G资本拟94亿美元私有化美国鞋履巨头斯凯奇,溢价30%
  • 住宿行业迎“最火五一”:数千家酒店连续3天满房,民宿预订量创历史新高