底层是一行一行读取表格中的内容
阿里的
--EasyExcel写操作----
1导入依赖 两个
<!-- EasyExcel 还需要poi的依赖 父pom里面有了 <poi.version>3.17</poi.version> https://mvnrepository.com/artifact/com.alibaba/easyexcel --> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.1</version> </dependency>
2设置写入类
package until.easyExcel; import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; @Data public class DemoEasyExcel { //设置表头名称 @ExcelProperty private Integer sno; @ExcelProperty private String sname; }
3先把数据写入到类中 再调用esaySexcel的方法写入excel中
@Test public void easyexcelwrite(){ //设置生成的文件地址 String fileName="D:\\Test\\write.xls"; // 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭 //调用方法实现 EasyExcel.write(fileName, DemoEasyExcel.class).sheet("写入方法一").doWrite(getData()); //文件 类 sheet名字 写入数据 } //设置类的数据 就是先把数据放到类里面 public List<DemoEasyExcel> getData(){ List<DemoEasyExcel> list = new ArrayList<DemoEasyExcel>(); for (int i = 0; i < 10; i++) { DemoEasyExcel data = new DemoEasyExcel(); data.setSno(i); data.setSname("张三"+i); list.add(data); } return list; }
--EasyExcel读操作----
1导入依赖 如上
2 设置存储excel内容的一个类
package until.easyExcel; import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; @Data public class ReadEasyExcel { //设置表头名称 @ExcelProperty(value = "学号", index = 0) private Integer sno; @ExcelProperty(value = "姓名",index = 1) private String sname; }
3设置监听器 实现AnalysisEventListener 注意泛型
package until.easyExcel; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import java.util.ArrayList; import java.util.List; import java.util.Map; public class ExcelListener extends AnalysisEventListener<ReadEasyExcel> { //创建list集合封装最终的数据 // List<ReadEasyExcel> list = new ArrayList<ReadEasyExcel>(); //读取excel内容 @Override public void invoke(ReadEasyExcel readEasyExcel, AnalysisContext analysisContext) { System.out.println("数据:"+readEasyExcel); } //读取表头的方法 @Override public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) { System.out.println("表头:"+headMap); } //读取完成之后执行的方法 @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { System.out.println("结束"); } }
4 设置excel文件位置
调用excel 方法 实现
package until.easyExcel; import com.alibaba.excel.EasyExcel; import org.junit.Test; import java.util.ArrayList; import java.util.List; public class TestReadDemo { @Test public void easyexcelwrite(){ //设置被读取的文件地址 String fileName="D:\\Test\\write.xls"; //读到这个类里面 EasyExcel.read(fileName,ReadEasyExcel.class,new ExcelListener()).sheet().doRead(); } }