EasyExcel操作Excel读和写

引入依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>2.1.1</version>
</dependency>
 <!--xls-->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.17</version>
</dependency>
<!--xlsx-->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.17</version>
</dependency>

1.使用EasyExcel进行写操作

(1).创建一个要写入的实体类

@Data
public class Student {
    // 设置excel表头的名称
    @ExcelProperty("学生编号")
    private Integer no;

    @ExcelProperty("学生姓名")
    private String name;
}

(2).创建一个操作Excel的实体类

public class TestEasyExcel {

    public static void main(String[] args) {
        // 实现excel写的操作
        // 1.设置写入文件夹地址和excel文件名称
        String filename = "C:\\write.xlsx";

        // 2.调用easyExcel里面的方法实现写操作
        // write方法的两个参数:第一个为文件路径 第二个为实体类class
        EasyExcel.write(filename, Student.class)
            	// Sheet的名称
            	.sheet("学生列表")
            	// 把数据写入Excel表格中
                .doWrite(getData());
    }

    // 创建方法返回list集合(具体要写入Excel的数据)
    private static List<Student> getData() {
        List<Student> list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            Student data = new Student();
            data.setSno(i);
            data.setSname("lucy" + i);
            list.add(data);
        }
        return list;
    }
}

2.使用EasyExcel进行读操作

(1).创建一个和Excel对应的实体类,标记对应列关系

@Data
public class Student {

    // 设置excel表头的名称
    @ExcelProperty(value = "学生编号", index = 0)
    private Integer no;

    @ExcelProperty(value = "学生姓名", index = 1)
    private String name;
}

(2).创建读取Excel监听器

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.metadata.CellData;

import java.util.Map;

public class ExcelListener extends AnalysisEventListener<Student> {

    /**
     * 一行一行读取excel内容
     * @param data 一行一行读取数据
     * @param analysisContext
     */
    @Override
    public void invoke(Student data, AnalysisContext analysisContext) {
        System.out.println("*****" + data);

    }

    /**
     * 读取表头内容
     * @param headMap
     * @param context
     */
    @Override
    public void invokeHead(Map<Integer, CellData> headMap, AnalysisContext context) {
        System.out.println("表头:" + headMap);
    }

    /**
     * 读取完成之后
     * @param analysisContext
     */
    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) { }
}

(3).调用实现最终的读取

import com.alibaba.excel.EasyExcel;

public class TestEasyExcel {

    public static void main(String[] args) {
        // 实现Excel读操作,这里表示要读取的Excel文件的路径
        String filename = "C:\\write.xlsx";

        // read的三个参数:要读取的Excel文件路径 和Excel对应的实体类 监听器
        EasyExcel.read(filename, Student.class, new ExcelListener())
                .sheet()
                .doRead();
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
EasyExcel是一个开源的excel处理框架,可以用于取和写入Excel文件。使用EasyExcelExcel文件的步骤如下: 1. 创建一个ExcelReader对象,指定要取的Excel文件路径和要映射的实体类。例如: ```java ExcelReader reader = EasyExcel.read("/path/to/file.xlsx", MyModel.class, new MyListener()).build(); ``` 这里的`MyModel`是你自定义的实体类,用于映射Excel文件中的数据。 2. 调用`reader.read()`方法Excel文件中的数据。 3. 最后,记得调用`reader.finish()`方法关闭reader对象。 通过以上步骤,你可以使用EasyExcelExcel文件中的数据。 #### 引用[.reference_title] - *1* [JAVA 使用阿里EasyExcel完成对Excel文件进行操作](https://blog.csdn.net/weixin_43878332/article/details/112808392)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [EasyExcel轻松Excel文件!](https://blog.csdn.net/qq_48607414/article/details/128250637)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值