实现EasyExcel对Excel读写操作

实现EasyExcel对Excel读写操作

.pom中引入xml相关依赖

<dependencies>
    <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
		    <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>
</dependencies>

注意api和easyexcel的版本对应

EasyExcel对Excel写操作

1.创建表对应的实体类

import com.alibaba.excel.annotation.ExcelProperty;

//设置表头和添加的数据字段
@Data  //此注解 lombok用来简化实体类:需要安装lombok插件
public class DemoData {
    //设置表头名称
    @ExcelProperty("学生编号")
    private string sno;

    //设置表头名称
    @ExcelProperty("学生姓名")
    private String sname;

2.创建代码
方法一:

//        实现excel写的操作
//        1设置写入文件地址和excel的文件名称
        String filename ="创建的地址";
//        2调用easyexcel里面的方法实现写操作
        EasyExcel.write(filename,实体类.class).sheet("学生列表").doWrite(list数据);
         //学生列表表示exsl下面的sheet

方法二:

public static void main(String[] args) throws Exception {
    // 写法2,方法二需要手动关闭流
    String fileName = "F:\\112.xlsx";
    // 这里 需要指定写用哪个class去写
    ExcelWriter excelWriter = EasyExcel.write(fileName, DemoData.class).build();
    WriteSheet writeSheet = EasyExcel.writerSheet("写入方法二").build();
    excelWriter.write(data(), writeSheet);
    /// 千万别忘记finish 会帮忙关闭流
    excelWriter.finish();
}
EasyExcel对Excel读操作

1:创建实体类

import com.alibaba.excel.annotation.ExcelProperty;
@Data
public class ReadData {

    //设置列对应的属性
    @ExcelProperty(index = 0)  //表示第几列 0表示第一列
    private String sid;
    
    //设置列对应的属性
    @ExcelProperty(index = 1) //表示第几列 1表示第二列
    private String sname;

2.创建读取操作的监听器

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.exception.ExcelDataConvertException;
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;


//创建读取excel监听器

public class ExcelListener extends AnalysisEventListener<ReadData> {


    //创建list集合封装最终的数据
    List<ReadData> list = new ArrayList<ReadData>();


    //一行一行去读取excle内容

    @Override
    public void invoke(ReadData user, AnalysisContext analysisContext) {
       System.out.println("***"+user);
        list.add(user);

    }
    //读取excel表头信息
    @Override
    public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
        System.out.println("表头信息:"+headMap);
    }

    //读取完成后执行
    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
    }

}

3.调用实现最终的读取

  public static void main(String[] args) throws Exception {
        // 写法1:
        String fileName = "F:\\01.xlsx";
        // 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
        EasyExcel.read(fileName, ReadData.class, new ExcelListener()).sheet().doRead();

        // 写法2:
        InputStream in = new BufferedInputStream(new FileInputStream("F:\\01.xlsx"));
        ExcelReader excelReader = EasyExcel.read(in, ReadData.class, new ExcelListener()).build();
        ReadSheet readSheet = EasyExcel.readSheet(0).build();
        excelReader.read(readSheet);
        // 这里千万别忘记关闭,读的时候会创建临时文件,到时磁盘会崩的
        excelReader.finish();
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值