java-execl写入数据-单个/批量
需要先创建一个excel文档。
pash:读取excel文档路径。
cls:文档中需要写列名,
data:需要写的数据。可以是list,也可以是单个。
直接上代码
public static void writeExcel(String path, Class<?> cls, Collection<?> data){
EasyExcel.write(path,cls).
excelType(ExcelTypeEnum.XLSX).
registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).
sheet("模版").
doWrite(data);
}
例:批量写入
public void test0011(){
List<dskAndDss> dsklist = new ArrayList<>();
//获取文档路径。
List<String> list = ReadExcelUtil.queryDataByExecl("绝对路径.slsx");
//写入文档路金
String path = "绝对路径.slsx";
for (String dsk: list) {
//查询。获取dss
queryDSK(dsk);
DSKDto unTranferskDto = getData(DSKDto.class);
String dss = unTranferskDto.getDss();
//生成新的excel,存在dsk和dss数据
dskAndDss dskAndDss = new dskAndDss();
dskAndDss.setDsk(dsk);
dskAndDss.setDss(dss);
dsklist.add(dskAndDss);
}
//批量写入数据
WriterExcelUtil.writeExcel(path,dskAndDss.class,dsklist);
}
注:excel中的列,会根据Class<?> cls的模型生成对应的列名
例:
```java
public class dskAndDss {
public String getDss() {
return dss;
}
public void setDss(String dss) {
this.dss = dss;
}
public String getDsk() {
return dsk;
}
public void setDsk(String dsk) {
this.dsk = dsk;
}
public String dss;
public String dsk;
}
生成的excel: