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;@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 {@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();}
}
模板:字段输出的写法可以搜索参考官方文档,文档写的很详细,这里就不赘述了
测试结果:
java easypoi使用模板导出Excel,合并单元格相关推荐
- easypoi 模板导出兼容合并单元格功能
最新在使用easypoi,使用注解导出和模板导出的方式,现在主要就模板导出合并单元格一些坑和解决方法. 首先我建议刚接触的同学看这篇文章,很详细,功能也比较全面,比较感谢这篇文章的原创作者,网站1:e ...
- springboot项目导出excel 合并单元格表格
springboot项目导出excel 合并单元格表格 导出效果 业务controller 业务数据 业务实体类 注解MyExcel.java 注解 MyExcels 导出工具类MyExcelUtil ...
- java导出excel合并单元格
今天是2018最后一天了,废话就不多说了直接上干货吧! 1.java导出excel用到POI所有jar包 ,大家可以直接到下面地址下载点击打开链接 2.导出excel的方法 package org; ...
- java导出excel 边框不全_POI 导出Excel合并单元格后部分边框不显示
用户需要导出自定义表格,其中合并单元格样式遇到的问题,合并后只显示第一行第一列的边框,其他边框不显示,于是遍查百度,寻到一点思路 ①了解Excel绘制原理 ②了解绘制Excel顺序 ③绘制Excel单 ...
- java SXSSF 导出excel 合并单元格,设置打印分页
官方poi地址: Busy Developers' Guide to HSSF and XSSF Features HSSFWorkbook.XSSFWorkbook.SXSSFWorkbook的区别 ...
- java POI导出excel,合并单元格边框消失
业务是导出一个报表,要求有一个跨多列的表头,肯定要用到合并单元格,但合并后边框消失.网上的一些解决办法是重写合并单元格方法,但弄清楚原因后,其实没必要. 原来是这样的: 合并后就第一个有边框,其余全成 ...
- POI导出EXCEL合并单元格对象嵌套List数据
导出EXCEL 在实际的开发过程当中,我们会遇到一些比较复杂的导出需求,例如需要导出的实体类中需要嵌套集合对象等,正好最近碰到了所以分享出来,希望对大家有帮助 一.POI是什么 简单的说就是Apach ...
- poi导出Excel合并单元格、设置打印参数页眉页脚等
由于生成文件不能落地,使用SXSSFWorkBook来对excel的导出工作 生成excel步骤: 1.创建workbook SXSSFWorkbook workbook=new SXSSFWorkb ...
- JXL导出EXCEL合并单元格、文字对齐方式 .
public void createNoLotteryAlarmExcel(String filePath,String fileName,List<NoLotteryAlarm> ala ...
- JXL导出EXCEL合并单元格、文字对齐方式
这次能做出来,主要是感谢各位在网上提供的资料,在此记录 导出的结果是,大家看哈,若有可取之处可继续 代码比较多,大家主要看哈我用红色标注部分即可 --------------------------- ...
最新文章
- getCacheDir用法
- 怎么排号_春节将至,那些过年不回家的人们都是怎么过年的?
- 如何搭建SVN的服务器
- 【渝粤教育】21秋期末考试建设工程法规10221k1
- jQuery 事件 - bind() 方法
- Python杂谈: __init__.py的作用
- 通用权限管理系统组件 (GPM - General Permissions Manager) 中集成多系统的统一登录(数据库源码级)附源码...
- 接口参数,get和post
- 亲密关系-【沟通提示】-如何把学习到的东西用到生活中
- Go语言学习之11 日志收集系统kafka库实战
- Ubuntu 20.04 国内源
- You have new mail in /var/spool/mail/root提示的原因与解决办法
- Lucene PriorityQueue JDK PriorityQueue
- linux 安装arial字体,在CentOS中安装arial字体
- 黑马程序员——从迷茫的大学认识黑马
- 三角形花园和向左走(三角形性质和点集排序)
- linux 切换gnome kde桌面,科学网—openSUSE15.1切换桌面环境(从Gnome至KDE Plasma) - 潘林的博文...
- 怎么样用计算机计算三角函数,怎样在科学计算器上计算三角函数
- SVN检出报错,SVN更新时忽略指定文件或文件夹
- python播放mp3文件