操作Excel读和写"/>
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方法的两个参数:第一个为文件路径 第二个为实体类classEasyExcel.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*/@Overridepublic void invoke(Student data, AnalysisContext analysisContext) {System.out.println("*****" + data);}/*** 读取表头内容* @param headMap* @param context*/@Overridepublic void invokeHead(Map<Integer, CellData> headMap, AnalysisContext context) {System.out.println("表头:" + headMap);}/*** 读取完成之后* @param analysisContext*/@Overridepublic 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();}
}
更多推荐
EasyExcel操作Excel读和写
发布评论