一、easyexcel导出多个sheet表格模板
在使用EasyExcel导出多个Sheet表格时,我们首先需要创建不同的Sheet表格模板。为此,我们可以通过 EasyExcel 的 WriteModel 模式,创建多个不同的Model并使用不同的Sheet存储在同一个Excel文件中。需要注意的是,多个Sheet在创建时,需要指定不同的Sheet名称。
public void writeSeveralSheetsWithTemplate(String filePath){ ListmodelList = new ArrayList<>(); WriteModel model1 = new WriteModel(); model1.setName("Sheet1"); List
> data1 = new ArrayList<>(); data1.add(Arrays.asList("姓名", "年龄", "性别")); model1.setData(data1); modelList.add(model1); WriteModel model2 = new WriteModel(); model2.setName("Sheet2"); List
> data2 = new ArrayList<>(); data2.add(Arrays.asList("学科", "成绩")); model2.setData(data2); modelList.add(model2); EasyExcel.write(filePath).withTemplate(templateFileName).sheet().doWrite(modelList); }
二、easyexcel导出数据
在创建好多个Sheet表格模板后,我们需要将我们需要导出的数据填充到每一个模板中。可以通过 EasyExcel 的 WriteModel 模式,将数据填充到对应的Sheet表格中。
public void writeSeveralSheetsWithData(String filePath){ ListmodelList = new ArrayList<>(); WriteModel model1 = new WriteModel(); model1.setName("Sheet1"); List
> data1 = new ArrayList<>(); data1.add(Arrays.asList("小明", "18", "男")); data1.add(Arrays.asList("小红", "17", "女")); model1.setData(data1); modelList.add(model1); WriteModel model2 = new WriteModel(); model2.setName("Sheet2"); List
> data2 = new ArrayList<>(); data2.add(Arrays.asList("语文", "80")); data2.add(Arrays.asList("数学", "90")); model2.setData(data2); modelList.add(model2); EasyExcel.write(filePath).withTemplate(templateFileName).sheet().doWrite(modelList); }
三、easyexcel导出无数据
如果需要在导出Excel文件时,给一些Sheet表格添加无数据提示信息,则可以通过添加一个空的List,来实现该功能。
public void writeSeveralSheetsWithEmptyData(String filePath){ ListmodelList = new ArrayList<>(); WriteModel model1 = new WriteModel(); model1.setName("Sheet1"); List
> data1 = new ArrayList<>(); data1.add(Arrays.asList("小明", "18", "男")); model1.setData(data1); modelList.add(model1); WriteModel model2 = new WriteModel(); model2.setName("Sheet2"); List
> data2 = new ArrayList<>(); // 添加空的List model2.setData(data2); modelList.add(model2); EasyExcel.write(filePath).withTemplate(templateFileName).sheet().doWrite(modelList); }
四、easyexcel模板导出选取
通过EasyExcel,我们可以实现对指定Sheet表格数据的导出。想要实现该功能,我们需要创建指定的Sheet表格模板,并在使用时,只选取需要的Sheet表格进行数据填充并导出。
public void writeSelectedSheetsWithData(String filePath){ ListmodelList = new ArrayList<>(); WriteModel model1 = new WriteModel(); model1.setName("Sheet1"); List
> data1 = new ArrayList<>(); data1.add(Arrays.asList("小明", "18", "男")); data1.add(Arrays.asList("小红", "17", "女")); model1.setData(data1); modelList.add(model1); WriteModel model2 = new WriteModel(); model2.setName("Sheet2"); List
> data2 = new ArrayList<>(); data2.add(Arrays.asList("语文", "80")); data2.add(Arrays.asList("数学", "90")); model2.setData(data2); modelList.add(model2); EasyExcel.write(filePath).withTemplate(templateFileName) .sheet("Sheet1") .doWrite(modelList.stream().filter(model -> model.getName().equals("Sheet1")) .collect(Collectors.toList())); }