easypoi文档网址:http://easypoi.mydoc.io/
相关对象方法等信息可以去官网文档中查看或者直接看源码(注释是中文,嘿嘿,国人牛批!),这里只写使用到的方法含义。
直接上代码:
导入依赖:
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>3.2.0</version>
</dependency>
main方法:
public class ParseExcel {
public static void main(String[] args) throws Exception {
FileInputStream inputStream = new FileInputStream("school.xlsx");
List<School> objects = (List<School>) importExcel(inputStream, School.class);
System.out.println(objects.size());
for (School data : objects) {
System.out.println(data);
}
}
public static List<?> importExcel(InputStream inputStream, Class<?> clazz) throws Exception {
ImportParams importParams = new ImportParams();
importParams.setHeadRows(1); // 设置表头行数,默认1
importParams.setTitleRows(0); // 设置表格标题行数,默认0
return ExcelImportUtil.importExcelMore(inputStream, clazz, importParams).getList();
}
}
School类:
@Data
public class School {
// 这里对应excel中每列的序号和名称
@Excel(orderNum = "0", name = "学校编码", width = 30)
private String no;
@Excel(orderNum = "1", name = "学校名称", width = 30)
private String name;
@Excel(orderNum = "2", name = "区域", width = 30)
private String area;
@Excel(orderNum = "3", name = "学校图片代码", width = 30)
private String imgCode;
}
school.xlsx:
运行结果:
感谢easypoi,如此easy!