easyexcel 无模板写入_关于EasyExcel 的一些生成模板,导入导出的使用心得(优化版)...
这里就简单说了,直接贴代码
@HeadFontStyle(color =2) 维护表头第2行的注解
/**
* @author: kuangql@fadada.com
* @date: 2020/11/27 19:53
* @description: TODO
*/
@Data
public class DemoExportEntity {
public static final String bigTitle= "填写须知: \n" +
"1.第1、2行为固定结构,不可更改;以下示例行,导入前请先删除\n" +
"2.请严格按照填写规则输入数据,不合规的数据无法成功导入 \n" +
"3.测试换行 \n";
/**
*
* org.apache.poi.ss.usermodel.IndexedColors 这个类有所有的颜色枚举值 2是红色
* @ HeadFontStyle 注解默认是宋体,黑色,加粗
*
*/
@ExcelProperty(value = {"姓名(必填)"}, index = 0)
@ColumnWidth(30)
@HeadFontStyle(color =2)
private String userName;
@ExcelProperty(value = {"性别(必填)"}, index = 1)
@ColumnWidth(20)
private String userSexName;
@ExcelProperty(value = {"手机号码(必填)"}, index = 2)
@ColumnWidth(30)
private String userMobile;
@ExcelProperty(value = {"出生年月(必填)"}, index = 3)
@ColumnWidth(30)
private String userBirthday;
@ExcelProperty(value = {"工作单位(必填)"}, index = 4)
@ColumnWidth(20)
private String deptName;
@ExcelProperty(value = {"职务(必填)"}, index = 5)
@ColumnWidth(20)
private String unitPosition;
@ExcelProperty(value = {"干部类别(必填)"}, index = 6)
@ColumnWidth(20)
private String leaderTypeName;
@ExcelProperty(value = {"用户状态(必填)"}, index = 7)
@ColumnWidth(20)
private String userStatusName;
/**
* 每个模板的首行高度, 换行数目+2 乘以400
*/
public static int getHeadHeight(){
return (StringUtils.getCharCounts(bigTitle,"\n")+2)*400;
}
}
维护第一行表头样式
/**
*
*
* 创建模板
* @author: kuangql@fadada.com
* @date: 2020/11/30 13:48
* @description: TODO
*/
public class CreateTemplateWriteHandler implements SheetWriteHandler {
/**
* 第一行内容
*/
private String firstTitle;
/**
* 实体模板类的行高
*/
private int height;
/**
* 实体类 最大的列坐标 从0开始算
*/
private int lastCellIndex;
public CreateTemplateWriteHandler(String firstTitle, int height, int cellCounts) {
this.firstTitle = firstTitle;
this.height = height;
this.lastCellIndex = cellCounts;
}
@Override
public void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
}
@Override
public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
Workbook workbook = writeWorkbookHolder.getWorkbook();
Sheet sheet = workbook.getSheetAt(0);
Row row1 = sheet.createRow(0);
row1.setHeight((short) height);
//字体样式
Font font = workbook.createFont();
font.setColor((short)2);
Cell cell = row1.createCell(0);
//单元格样式
CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
cellStyle.setAlignment(HorizontalAlignment.CENTER);
cellStyle.setFont(font);
cellStyle.setWrapText(true);
cell.setCellStyle(cellStyle);
//设置单元格内容
cell.setCellValue(firstTitle);
//合并单元格 --> 起始行, 终止行 ,起始列,终止列
sheet.addMergedRegionUnsafe(new CellRangeAddress(0, 0, 0, lastCellIndex));
}
/**
* 根据实体类生成模板
*
* @param response
* @param fileName 下 载的文件名,
* @param sheetName sheet名
* @param model 实体类
* @param height 第一行行高
* @param title 第一行表头内容
* @param lastCellIndex 列数
*/
public static void createTemplate(HttpServletResponse response, String fileName,
String sheetName,
Class> model, int height, String title, int lastCellIndex) {
EasyExcel.write(getOutputStream(fileName, response, ExcelTypeEnum.XLSX), model).
excelType(ExcelTypeEnum.XLSX).sheet(sheetName)
.registerWriteHandler(new CreateTemplateWriteHandler(title, height, lastCellIndex))
.head(model)
.useDefaultStyle(true).relativeHeadRowIndex(1)
.doWrite(null);
}
easyexcel 无模板写入_关于EasyExcel 的一些生成模板,导入导出的使用心得(优化版)...相关推荐
- vue 修改模板{{}}标签_详解Vue 动态添加模板的几种方法
以下方法只适用于 Vue1.0 版本,推荐系数由高到低排列. 通常我们会在组件里的 template 属性定义模板,或者是在*.vue文件里的 template 标签里写模板.但是有时候会需要动态生成 ...
- easyexcel 在 设置标题_七. EasyExcel标题加批注和标题字体填充红色
一, 概述 在日常开发中, 经常会碰到导入导出的场景, 有导入就肯定有导入模板, 本文将介绍利用EasyExcel给标题添加批注和挑剔字体填充颜色 二. 代码 2.1 编写样式处理类: TitleHa ...
- easyexcel 无模板写入_给位,问个问题,用easyExcel无模板导出数据时,怎么在指定单元格添加计算公式呢?...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 easyExcel没用过,spire.xls.jar可以给指定单元格添加各种公式 import com.spire.xls.*; public class ...
- easyexcel根据模板写入_用 Vue+ElementUI 搭建后台管理极简模板
本文由图雀社区成员 灿若星空[1] 写作而成,欢迎加入图雀社区,一起创作精彩的免费技术教程,予力编程行业发展. 写在前面 此篇文章为一篇说明文档,不是教你从零构建一个后台管理系统,而是基于一个实际项目 ...
- easyexcel根据模板写入_ProxmoxVE 之 创建win10基础镜像模板
安装完pve之后,需要用到win10操作系统作为桌面虚拟机,这里记录一下制作过程.首先在官网下载win10的镜像,下载地址如下: https://www.wbpluto.com/2018/05/01/ ...
- python 标准模板库_比较了3个Python模板库
python 标准模板库 在我的日常工作中,我花费大量时间将各种来源的数据整理成人类可读的信息. 虽然在很多时候,这只是以电子表格或某种类型的图表或其他数据可视化的形式出现,但在其他情况下,有意义的是 ...
- 模板设计模式_设计模式实用又简单的模板模式
这篇文章纯科普向,如题,对这方面了解的可以绕道了,不耽误大家时间了哈 -----------------------------------人工分割线------------------------- ...
- java运费模板设计_电商系统设计之运费模板(下)
电商大伙每天都在用,类似某猫,某狗等. 电商系统设计看似复杂又很简单,看似简单又很复杂 本章适合初中级工程师细看,大佬请随意 前言 在订单系统中,运费模板是其中一个重要组成部分,看似简单的一个设置,在 ...
- java运费模板设计_电商系统设计之运费模板(上)
电商大伙每天都在用,类似某猫,某狗等. 电商系统设计看似复杂又很简单,看似简单又很复杂 本章适合初中级工程师细看,大佬请随意 前言 在订单系统中,运费模板是其中一个重要组成部分,看似简单的一个设置,在 ...
最新文章
- 2017年首份中美数据科学对比报告,Python受欢迎度排名第一,美国数据工作者年薪中位数高达11万美金
- Java异常之异常机制
- Oracle RAC 环境下的连接管理(转) --- 防止原文连接失效
- mysql char null_关于mysql设置varchar 字段的默认值''和null的区别,以及varchar和char的区别...
- 怎么样才能写出出色的代码
- SAP Spartacus CurrentProductService返回的null对象
- php中命名空间、面向对象、访问控制、接口
- 及时复盘的好处_还不会复盘?这篇有最全的复盘介绍
- idea git提交代码步骤(转载)
- Android 签名板
- Spring入门学习推荐
- 暗黑管理系列:发红包的管理杠杆率和量级作用
- aid learning如何换源
- BERT如何解决一词多义问题
- 在Windows系统中使用DIY Dodecad 2.1 分析祖源的方法
- python爬虫爬取起点小说_python3爬虫-使用requests爬取起点小说
- 苹果手机计算机怎样拉到桌面,苹果手机怎样才能快速投屏到电脑屏幕上
- python实现简单购物商城_python实现简单购物商城
- 关于如何向老板提涨工资
- DocuWare 文件管理与工作流程自动化案例研究——DocuWare 工作流程功能使在家工作的员工能够保持沟通和高效工作,支持混合环境