EasyExcel导出Excel-表头格式化

news/2024/7/21 7:34:59 标签: excel

文章目录

  • 一、定义去除EasyExcel原生格式定义
  • 二、实体类
  • 三、设置参数
  • 四、结果展示

一、定义去除EasyExcel原生格式定义

import com.alibaba.excel.write.metadata.style.WriteCellStyle;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.usermodel.BorderStyle;
import com.alibaba.excel.write.metadata.style.WriteFont;
import org.apache.poi.ss.usermodel.IndexedColors;
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;


public   class excelTest{

    //设置样式 去除默认表头样式及设置内容居中
    public HorizontalCellStyleStrategy getStyleStrategy() {
        //内容样式策略
        WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
        //垂直居中,水平居中
        contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
        contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
        contentWriteCellStyle.setBorderLeft(BorderStyle.THIN);
        contentWriteCellStyle.setBorderTop(BorderStyle.THIN);
        contentWriteCellStyle.setBorderRight(BorderStyle.THIN);
        contentWriteCellStyle.setBorderBottom(BorderStyle.THIN);
        //设置 自动换行
        contentWriteCellStyle.setWrapped(true);
        // 字体策略
        WriteFont contentWriteFont = new WriteFont();
        // 字体大小
        contentWriteFont.setFontHeightInPoints((short) 12);
        contentWriteCellStyle.setWriteFont(contentWriteFont);
        //头策略使用默认
        WriteCellStyle headWriteCellStyle = new WriteCellStyle();
        headWriteCellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());
        return new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
    }


}


二、实体类

package com.zdft.warehouse.prepaymentpool.model;

import java.util.Date;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;


/**
 * 预付款池管理(PrepaymentPoolManage)实体类
 *
 * @author yhc
 * @since 2022-12-16 22:40:18
 */
@ApiModel("预付款池管理-FilterVoModel")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PrepaymentPoolManageFilterVoModel implements Serializable {

    /**
     * 主键
     */
    @ApiModelProperty("主键")
    @ExcelIgnore
    private Long id;

    @ApiModelProperty("序号")
    @ExcelProperty("序号")
    @ColumnWidth(10)
    private int number;

    /**
     * 供应商编码
     */
    @ApiModelProperty("value =供应商编码")
    @ExcelProperty("供应商编码")
    @ColumnWidth(25)
    private String venderCode;
    /**
     * 供应商名称
     */
    @ApiModelProperty("value =供应商名称")
    @ExcelProperty("供应商名称")
    @ColumnWidth(25)
    private String venderName;
    /**
     * 预付款总金额
     */
    @ApiModelProperty("value =预付款总金额")
    @ExcelProperty("预付款总金额")
    @ColumnWidth(25)
    private String advancePaymentAmount;
    /**
     * 已付预付款额
     */
    @ApiModelProperty("value =已付预付款额")
    @ExcelProperty("已付预付款额")
    @ColumnWidth(25)
    private String prepaymentPaid;
    /**
     * 退预付款额
     */
    @ApiModelProperty("value =退预付款额")
    @ExcelProperty("退预付款额")
    @ColumnWidth(25)
    private String refundOfAdvancePayment;
    /**
     * 可用预付款额
     */
    @ApiModelProperty("value =可用预付款额")
    @ExcelProperty("可用预付款额")
    @ColumnWidth(25)
    private String availablePrepayment;
    /**
     * 创建人
     */
    @ApiModelProperty("value =创建人")
    @ExcelIgnore
    private String createUser;
    /**
     * 创建时间
     */
    @ApiModelProperty("value =创建时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @ExcelIgnore
    private Date createTime;
    /**
     * 更新人
     */
    @ApiModelProperty("value =更新人")
    @ExcelIgnore
    private String updateUser;
    /**
     * 更新时间
     */
    @ApiModelProperty("value =更新时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @ExcelIgnore
    private Date updateTime;
    /**
     * 备注
     */
    @ApiModelProperty("value =备注")
    @ExcelIgnore
    private String remark;
    /**
     * 删除标记(0、未删除,1、已删除)
     */
    @ApiModelProperty("value =删除标记(0、未删除,1、已删除)")
    @ExcelIgnore
    private Integer deleted;


    @ApiModelProperty("判断明细表")
    @ExcelIgnore
    private String ifDetail;

}


三、设置参数


public  class excelTest{

public  void export(){

//第一步造数据

 List<PrepaymentPoolManageFilterVoModel> list=new ArrayList<>();
//添加数据...list.add()
 
      try {
            //第二步:设置参数
            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
            response.setCharacterEncoding("utf-8");


            //第三步:设置文件名->这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
            String fileName = URLEncoder.encode("预付款池列表导出", "UTF-8").replaceAll("\\+", "%20");
            response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");


            EasyExcel.write(response.getOutputStream(), PrepaymentPoolManageFilterVoModel.class).sheet("模板").autoTrim(true).registerWriteHandler(getStyleStrategy()).doWrite(list);

        } catch (Exception e) {
            e.printStackTrace();
            throw new BusinessException("500", "服务器异常");
        }
}

}

四、结果展示

在这里插入图片描述


http://www.niftyadmin.cn/n/212107.html

相关文章

电脑无法正常关机?点了关机又会自动重启

“真木马”相信不少朋友遇到过电脑关机自动重启现象&#xff0c;一点关机&#xff0c;但随后电脑有会进入重启状态&#xff0c;就是一直不会停&#xff0c;属实是很难崩。 目录 一、问题症状 二、问题原因 三、解决方案 方法一&#xff1a; 1.关闭系统发生错误时电脑自动…

数据库关于时区相差8小时问题

** 关于时区相差8小时问题 1.更换高版本SQL驱动出现的问题 执行sql在插入数据库的过程中都无任何问题,但是通过数据库查看就会发现比正常插入时间少了8小时或者更多小时,多半原因是时区问题 2.排查思路 ①.首先查看数据库所在的服务器,时间是否正确 ②.在查看配置文件中是否配…

[4] 实现无头单向非循环链表

目录 一、框架 二、实现各个方法 三、测试各个方法 四、源码 一、框架 一个单向链表的节点&#xff0c;有数值域和下一个节点的地址 我们可以设计一个链表类&#xff0c;在这个链表类设计一个节点内部类&#xff0c;这里设计成内部类的形式&#xff0c;因为链表是由节点组…

中科网联CCData借助亚马逊云科技实现高效融媒体测量

近年来&#xff0c;随着媒体与广告传媒行业数字化转型向纵深发展&#xff0c;如何利用数据洞察用户生态、实现精准触达以及业务持续创新已成为媒体产业深入发展的“必答题”。与此同时&#xff0c;随着数据应用的不断深入&#xff0c;借助人工智能和机器学习技术&#xff0c;找…

SpringCloudAliBaba学习(一)

目录 前情提要&#xff1a; 1 新建Nacos父工程 1.1 下载Nacos 1.2 Nacos的专业术语 1.3 与其他注册中心对比 2 使用Nocas 2.1 下载完成后进入bin文件夹 2.2 打开浏览器访问 2.3 构建提供者nacos-provider8000 2.4 当前的模块引入依赖nacos的依赖 2.5 再构建一个服务…

Linux下Nginx配置SSL模块,Nginx安装SSL,Nginx支持https配置详细教程

前提&#xff1a;Linux安装Nginx&#xff0c;参考教程&#xff1a;CentOS7安装Nginx完整教程&#xff0c;Linux系统下保姆式安装Nginx教程 | 老麻 安装好Nginx之后&#xff0c;需要支持SSL时&#xff0c;要单独安装SSL模块&#xff0c;方法如下&#xff1a; 输入 ./nginx –V 命…

如何在移动应用中集成美颜SDK实现人脸识别和美化功能?

随着移动应用的普及和人们对美的追求&#xff0c;美颜功能已成为很多应用的必备功能。而为了实现这样的功能&#xff0c;开发者需要使用美颜SDK。本文将从以下几个方面介绍如何在移动应用中集成美颜SDK实现人脸识别和美化功能。 一、美颜SDK的介绍 美颜SDK是一种用于美化人脸的…

使用C++面向对象思想计算两条直线交点

使用C面向对象思想计算两条直线交点 以下是使用C面向对象思想计算两条直线交点的示例代码&#xff1a; #include <iostream>using namespace std;class Point { public:double x, y;Point() {}Point(double x, double y) {this->x x;this->y y;} };class Line …