2021-12-02-easyExcle使用心得_easy excel yyyymmdd-程序员宅基地

技术标签: 深圳学习笔记  得帆学习笔记  java  

引入meaven包

		<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.2.7</version>
        </dependency>
        <!--还需要引入poi-->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.17</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.17</version>
        </dependency>

使用bean类

根据自己的需求创建对应的bean,这一类可以是根据数据库中的字段来定义。
我这里就用我数据库里面的一个表来做展示

数据库中的表
在这里插入图片描述
表中的数据
在这里插入图片描述
代码中的bean

package com.text;

import com.alibaba.excel.annotation.ExcelProperty;
import com.definesys.mpaas.query.annotation.Column;
import com.definesys.mpaas.query.annotation.Table;

/**
 * @copyright: Shanghai Definesys Company.All rights reserved.
 * @description:
 * @author: 小黑
 * @since: 2021/11/19 9:50
 * @history: 1.2021/11/19 created by xiaohei
 */
@Table(value = "student")
public class Student {
    
    @Column(value = "id")
    @ExcelProperty("学生编号")
    private String id;
    @Column(value = "name")
    @ExcelProperty("学生姓名")
    private String name;

    public String getId() {
    
        return id;
    }

    public void setId(String id) {
    
        this.id = id;
    }

    public String getName() {
    
        return name;
    }

    public void setName(String name) {
    
        this.name = name;
    }

    @Override
    public String toString() {
    
        return "Student{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                '}';
    }
}

将数据写入excle表格

这边的代码的目的就是把这些从数据库中获取到的数据,打包成对象然后插入到excle表格中。

Controller层

    @RequestMapping(value = "/easyExcleTest",method = RequestMethod.POST)
    public Response easyExcleTest(){
    
        return Response.ok().data(autoCheckService.easyExcleTest());
    }

Service层

    public String easyExcleTest() {
    
        return autoCheckDao.easyExcleTest();
    }

Dao层

public String easyExcleTest() {
    
        //先获取所有的数据
        List<Student> students = sw.buildQuery().doQuery(Student.class);
        //新建一个list
        List<String> fileNames = new ArrayList<String>();
        //用时间来区分文件信息,保证文件不会重复
        Date date = new Date();
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
        //给文件取名
        String fileName = "D:\\a\\文件"+format.format(date)+".xls";
        //输出一次文件名
        System.out.println(fileName);
        //创建excle写入对象
        ExcelWriter excelWriter = null;
        //设置写入对象的名称为fileName
        excelWriter = EasyExcel.write(fileName).build();
        //设置sheet的名称
        WriteSheet writeSheet = EasyExcel.writerSheet("sheet1").head(Student.class).build();
        //将我们上面获取到的students对象写入到sheet中。
        excelWriter.write(students,writeSheet);
        //将文件名称加入到fileNames列表中
        fileNames.add(fileName);
        //关闭写入流,一定要关,不能忘
        excelWriter.finish();
        //返回fileNames给接口调用。
        return String.valueOf(fileNames);
    }

使用上面的代码来进行接口调用测试
最后得到的数据表格的形式就是这样的:
在这里插入图片描述

如何对输出的excle表格进行格式的设置。

//设置头背景为蓝色
@HeadStyle(fillPatternType = FillPatternType.SOLID_FOREGROUND,fillForegroundColor = 152)
//设置头字体为16
@HeadFontStyle(fontHeightInPoints = 16)
//设置内容背景的颜色为浅蓝色
@ContentStyle(fillPatternType = FillPatternType.SOLID_FOREGROUND,fillForegroundColor = 155,horizontalAlignment= HorizontalAlignment.CENTER,borderBottom = BorderStyle.THIN,borderRight = BorderStyle.THIN)
//设置内容字体为10
@ContentFontStyle(fontHeightInPoints = 10)
//设置内容的高
@ContentRowHeight(30)
//设置头的高
@HeadRowHeight(40)

在这里插入图片描述

设置字体的颜色

这里就举例子成红色了哦

	@Column(value = "id")
    @ExcelProperty("学生编号")
    @HeadFontStyle(fontHeightInPoints = 16,color = 5)//黄色的列表头
    @ContentFontStyle(fontHeightInPoints = 10,color = 2)//红色的内容
    private String id;
    @Column(value = "name")
    @ExcelProperty("学生姓名")
    @HeadFontStyle(fontHeightInPoints = 16,color = 6)//粉色的列表头
    @ContentFontStyle(fontHeightInPoints = 10,color = 3)//绿色的内容
    private String name;

在这里插入图片描述
可以看到,这些都是可以单独进行设置颜色和格式的。

单独设置当前列的列宽

对于某一列的宽度进行设置,可以直接在对应的bean中的属性上面添加注解

@ColumnWidth(20)//设置列宽为20

在这里插入图片描述

隐藏字段

只需要在想要隐藏的字段上面添加这一条注解即可

@ExcelIgnore//隐藏字段

设置列所在的位置

字段对应的列的位置可以通过设置注解的属性来进行设置

@ExcelProperty(value = "应用/接口名",index = 1)

通过这个注解可以显示字段,也可以设置字段显示在excle表格中的名称

具体的详细的使用请参考官方文档
EasyExcle使用的官方文档.

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/h22407/article/details/121671915

智能推荐

BASE64、MD5、SHA、HMAC几种加密算法-程序员宅基地

文章浏览阅读106次。BASE64编码算法不算是真正的加密算法。 MD5、SHA、HMAC这三种加密算法,可谓是非可逆加密,就是不可解密的加密方法,我们称之为单向加密算法。我们通常只把他们作为加密的基础。单纯的以上三种的加密并不可靠。 BASE64 按照RFC2045的定义,Base64被定义为:Base64内容传送编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式。(The ..._base 64编码 和mad5 和雪花算法

住宅IP、家庭宽带IP以及原生IP,它们有什么区别?谷歌开发者账号应选择哪种IP?-程序员宅基地

文章浏览阅读1.1k次。IP地址(Internet Protocol Address)是互联网协议地址的简称,是互联网通信的基础,互联网上每一个网络设备的唯一标识符每个在线的设备都需要一个IP地址,这样才能在网络中找到它们并进行数据交换。IP地址有很多种类型,今天跟大家简单分享一下住宅IP、家庭宽带IP以及原生IP的区别。住宅IP通常是指由互联网服务提供商(ISP)分配给家庭的或小型办公室使用的互联网连接IP地址,并可能随着网络连接的变化而变化。此类IP地址主要用于日常网络活动,如浏览网页、发送接收电子邮件、上网冲浪等。

如何更改layui form表单位置,宽度,颜色等_layui-form-item 宽度-程序员宅基地

文章浏览阅读2.6w次,点赞14次,收藏30次。如何更改layui form表单位置,宽度,颜色等_layui-form-item 宽度

【翻译】Efficient Data Loader for Fast Sampling-Based GNN Training on Large Graphs_pagraph: scaling gnn training on large graphs via -程序员宅基地

文章浏览阅读612次。写的非常好_pagraph: scaling gnn training on large graphs via computation-aware caching

炫酷的HTML代码-程序员宅基地

文章浏览阅读2.7w次,点赞61次,收藏285次。很炫酷的html代码:<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><title>star</title><script type="text/javascript">window.onload = function () {C = Math.cos; // cache Math objectsS = Math.si.._炫酷的html

【HDU - 1166】敌兵布阵 (线段树模板 单点更新+ 区间查询)-程序员宅基地

文章浏览阅读204次。题干:C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。 中央情报局要研究敌人究竟演习什...

随便推点

【免费题库】华为OD机试C卷 - 数字字符串组合倒序(Java 代码+解析)-程序员宅基地

文章浏览阅读2.3k次。题目描述对数字,字符,数字串,字符串,以及数字与字符串组合进行倒序排列。字符范围:由 a 到 z, A 到 Z,数字范围:由 0 到 9符号的定义:“-”作为连接符使用时作为字符串的一部分,例如“20-years”作为一个整体字符串呈现;连续出现 2 个 “-” 及以上时视为字符串间隔符,如“out--standing”中的”–“视为间隔符,是 2 个独立整体字符串”out”和”standing”;除了 1,2 里面定义的字符以外其他的所有字符,都是非法字符,作为字符串的间隔符处理,倒序后

Android(14) ArrayAdapter(数组适配器)的三种方法-程序员宅基地

文章浏览阅读5w次,点赞36次,收藏138次。ArrayAdapter数组适配器用于绑定格式单一的数据,数据源可以是集合或者数组列表视图(ListView)以垂直的形式列出需要显示的列表项。实现过程:新建适配器->添加数据源到适配器->视图加载适配器第一种:直接用ListView组件创建列表每一行只有一行文字效果如图:activity_list布局:<?xml version="1.0" e..._arrayadapter

助力商家健康经营 创业者为水滴直播点赞-程序员宅基地

文章浏览阅读43次。近日,水滴直播平台登上了舆论的风口浪尖。有人认为水滴直播涉嫌侵犯隐私,但也有人表示这种互联网新生事物可以有效规避很多风险,值得鼓励,不应一棒子打死。记者采访时发现,很多商家、创业者对于水滴直播纷纷表示支持,并直言水滴直播为他们的经营带来了很大帮助。 邹志泉在北京丰台区经营着一家批发厂家直销男女内衣裤的店铺,平时就打开水滴直播,分享他在店铺的经营画面。面对水滴直播涉及隐私的提问,邹志泉明确表...

java毕业设计宠物收养管理系统Mybatis+系统+数据库+调试部署-程序员宅基地

文章浏览阅读67次。springboot基于SpringBoot的电影社区网站。springboot基于springboot食品销售网站。ssm基于微信平台的校园汉服租赁系统的设计与实现。ssm基于SSM高校教师个人主页网站的设计与实现。ssm基于SSM框架的在线健康系统设计与实现。ssm基于HTML的武昌理工学院二手交易网站。ssm基于JavaEE的网上图书分享系统。ssm基于Javaee的项目任务跟踪系统。

Nginx使用之反向代理、负载均衡、动静分离教程。_php动静分离-程序员宅基地

文章浏览阅读61次。负载均衡是指将客户端的请求分发到多个后端服务器,以平衡服务器的负载。反向代理是指将客户端的请求转发到后端服务器,并将响应返回给客户端。通过配置反向代理,Nginx将转发所有来自客户端的请求到后端服务器,并将响应返回给客户端。通过这样的配置,Nginx将根据请求的URL路径选择是将请求转发到后端服务器还是直接返回静态资源文件。通过配置负载均衡,Nginx将按照指定的策略将客户端的请求分发到后端服务器上,从而实现负载均衡。配置反向代理:编辑Nginx配置文件(通常是nginx.conf),在。_php动静分离

HTML5有哪些新特性_谈谈html5的一些新特性-程序员宅基地

文章浏览阅读9.5k次,点赞3次,收藏18次。(一) 语义标签(二)增强型表单(三)视频和音频(四)Canvas绘图(五)SVG绘图(六)地理定位(七)拖放API(八) WebWorker(九) WebStorage(十)Web..._谈谈html5的一些新特性

推荐文章

热门文章

相关标签