首页 > 技术文章 > easypoi 模板导出excel 合并的问题

Superb1995 2020-08-13 10:23 原文

一、首先数据对应的实体采用注解导出的注解标记

 

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();
}
}

 

 

三、导出效果

 

推荐阅读