50字范文,内容丰富有趣,生活中的好帮手!
50字范文 > java easypoi使用模板导出Excel 合并单元格

java easypoi使用模板导出Excel 合并单元格

时间:2020-08-10 17:48:00

相关推荐

java easypoi使用模板导出Excel 合并单元格

工作几年,每年都有java数据导出Excel的需求,从最初的POI到公司封装的工具再到阿里的EasyExcel。总是有这个那个的小痛点,最近发现easypoi比较满足工作需求,可以很好的导出数据并处理单元格合并的问题,perfect!!!

这是entity类,注解的mergeVertical是纵向合并内容相同的单元格,默认是false

import cn.afterturn.easypoi.excel.annotation.Excel;import lombok.Data;import java.io.Serializable;@Datapublic 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 {@Testpublic 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();}}

模板:字段输出的写法可以搜索参考官方文档,文档写的很详细,这里就不赘述了

测试结果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。