java操纵excel:easyexcel
1.导入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.7</version>
</dependency>
2.新建实体类
这个实体类的一个对象就对应excel中的一条数据
public class UserData{
@ExcelProperty("用户名称") //指明excel的字段名
private String name;
@ExcelProperty("用户年级")
private String age;
@ExcelProperty("用户学校")
Private String school;
@ExcelIgnore//忽略这个字段
private String ignore;
......省略构造器,get,set方法
}
3.写
public void test() {
List<UserData> list = new ArrayList<UserData>();
for (int i = 0; i < 10; i++) {
UserData data = new UserData();
data.setString("name" + i);
data.setAge(20);
data.setSchool("uestc");
list.add(data);
}
String fileName="file1.xls";
EasyExcel.write(fileName, UserData.class).sheet("模板").doWrite(list);
EasyExcel.write(response.getOutputStream(), UserData.class).sheet("模板").doWrite(list); //这里也可以写入到一个流中比如response流
}
4.读
读需要一个监听器
public class UserDataListener extends AnalysisEventListener<UserData> {
//一行一行的读取表中的内容(除了表头),放到data中
@Override
public void invoke(UserData data, AnalysisContext context) {
//我们可以把每行的数据放在一个list中
}
//读取之后执行
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
//这里可以写入库之类的
}
}
public void test() {
String fileName="file1.xls";
EasyExcel.read(fileName, UserData.class,new UserDataListener()).sheet().doRead();//传入路径或者文件的流
}
我有一壶酒
足以慰风尘
尽倾江海里
赠饮天下人

浙公网安备 33010602011771号