一、首先数据对应的实体采用注解导出的注解标记
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import java.io.Serializable;
@Data
public class UserEntity implements Serializable {
private static final long serialVersionUID = 1L;
private String idx;
@Excel(name = "籍贯", mergeVertical = true, width = 50)
private String nativeStr;
@Excel(name = "姓名", width = 20)
private String userName;
@Excel(name = "年龄", needMerge = true)
private int age;
@Excel(name = "地址", width = 50)
private String addr;
}
二、模板导出
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
import cn.afterturn.easypoi.test.entity.UserEntity;
import cn.afterturn.easypoi.util.PoiMergeCellUtil;
import org.apache.poi.ss.usermodel.Workbook;
import org.junit.Test;
import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class TemplateFengLingTest {
@Test
public void test() throws Exception {
Map<String, Object> map = new HashMap<String, Object>();
List<UserEntity> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
UserEntity entity = new UserEntity();
entity.setIdx(i + "");
entity.setNativeStr("广东梅州");
entity.setUserName("Mrs Ling_" + i);
if (i > 4) {
entity.setUserName("Mrs Ling");
entity.setIdx("5");
}
entity.setAge(16 + i);
entity.setAddr("广东梅州_" + i);
list.add(entity);
}
for (int i = 0; i < 10; i++) {
UserEntity entity = new UserEntity();
entity.setIdx(i + "");
entity.setNativeStr("广西玉林");
entity.setUserName("Mr Feng_" + i);
if (i > 4) {
entity.setUserName("Mr Feng");
entity.setIdx("5");
}
entity.setAge(21 + i);
entity.setAddr("广西玉林_" + i);
list.add(entity);
}
map.put("entityList", list);
TemplateExportParams params = new TemplateExportParams(
"doc/fengling_test.xlsx");
ExcelExportUtil.exportExcel(params, map);
Workbook workbook = ExcelExportUtil.exportExcel(params, map);
PoiMergeCellUtil.mergeCells(workbook.getSheetAt(0), 1, 0, 1, 2);
File saveFolder = new File("D:/home/excel/");
if (!saveFolder.exists()) {
saveFolder.mkdirs();
}
FileOutputStream fos = new FileOutputStream("D:/home/excel/fengling_test_export" + System.currentTimeMillis() + ".xlsx");
workbook.write(fos);
fos.close();
}
}
三、导出效果