基于注解玩转excel导出导入

demo 请 加入 598347590 技术解决群获取

个人博客 https://yangbuyi.top

话不多说 开始



        <!-- poi office -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.13</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.13</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.13</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</dependency>

请自行创建项目 我就不一一演示了 代码生成器即可

生成三层架构 完毕后

讲解 @ExcelField 注解

/**
* Excel注解定义 自定义注解 注入到实体类顶部 用于指定实体类的导出
* @author yangbuyi
* @version 2021-1-8
*/
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface ExcelField { /**
* 导出字段名(默认调用当前字段的“get”方法,如指定导出字段为对象,请填写“对象名.对象属性”,例:“area.name”、“office.name”)
*/
String value() default ""; /**
* 导出字段标题(需要添加批注请用“**”分隔,标题**批注,仅对导出模板有效)
*/
String title(); /**
* 字段类型(0:导出导入;1:仅导出;2:仅导入)
*/
int type() default 0; /**
* 导出字段对齐方式(0:自动;1:靠左;2:居中;3:靠右)
*/
int align() default 0; /**
* 导出字段字段排序(升序)
*/
int sort() default 0; /**
* 如果是字典类型,请设置字典的type值
*/
String dictType() default ""; /**
* 反射类型
*/
Class<?> fieldType() default Class.class; /**
* 字段归属组(根据分组导出导入)
*/
int[] groups() default {};
}

基本用法

title: 导出的单元格标题
aling: 对齐格式 0:自动;1:靠左;2:居中;3:靠右
sort[重要]: 导出的字段顺序 别重复哦 会覆盖 @ExcelField(title = "管理员", align = 2, sort = 1)
private String name;

这里定义完毕之后 在controller 调用即可

创建controller 访问

package top.yangbuyi.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import top.yangbuyi.common.excel.ExportExcel;
import top.yangbuyi.domain.User;
import top.yangbuyi.service.UserService; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List; /**
* ClassName: excelController
*
* @author yangshuai
* @Date: 2020-12-28 13:31
* @Description: $
**/
@RestController
public class excelController { @Resource
private UserService userService; @Resource
HttpServletResponse httpServletResponse; @Resource
HttpServletRequest httpServletRequest;
/**
* @功能描述:导出
* @Date: 2020-12-28 13:33
*/
@GetMapping
public String excel() {
try {
String fileName = "测试" + new Date() + ".xlsx";
// 获取list集合数据
List<User> list = this.userService.list();
// 直接输出
new ExportExcel("测试", User.class).setDataList(list).write(httpServletResponse, fileName, httpServletRequest).dispose();
} catch (Exception e) {
log.error("测试: {}", e);
}
return "";
}
}

完结。。。。。

[简单] 基于注解玩转excel导出导入的更多相关文章

  1. 2.自定义@Excel注解实现数据Excel形式导入导出

    前言 这几天在学习如何使用自定义注解实现Excel格式数据导入导出,参考的还是若依框架里面的代码,由于是初学,所以照猫画虎呗,但是难受的是需要复制并根据自己项目修改作者自定义的工具类以及导入这些工具类 ...

  2. 使用NPOI组件完成的Excel导出导入(附源代码,测试通过)

    最近遇到一个Excel导入导出的问题,要支持winform和webform,这里我是一个认真严谨的coder,所以决定把这个记录下来!和大家一起分享一下!如果需要的同学可以下载哦! 对于NPOI这个组 ...

  3. C#Excel导出导入

    using System; using System.Collections.Generic; using NPOI; using NPOI.HPSF; using NPOI.HSSF; using ...

  4. excel导出导入通用方法

    /** * 方法说明:批量导出通用方法 * 创建时间:2018年8月24日 *** * @param filePath 文件地址 * @param sheetName 分页名称 * @param ti ...

  5. excel 导出导入

    /** * 导出 * @param * @param * @return */ public function exportexcel() { set_time_limit(0); ini_set(' ...

  6. 基于注解的读取excel的工具包

    easyexcel-wraper easyexcel-wraper是什么? 一个方便读取excel内容,且可以使用注解进行内容验证的包装工具 easyexcel-wraper有哪些功能? 在easye ...

  7. php 之 excel导出导入合并

    <?php class Excel extends Controller { //直属高校 public function __construct() { parent::Controller( ...

  8. php做EXCEL数据导出导入开发的一些小问题

    前两天刚刚做开发CRM系统项目,在做要做EXCEL导出导入功能,因为以前做.NET开发用的是NPOI,但可是没找到PHP版本的,所以就网搜找了个国外的开源PHPEXCEL , 一开始只是做了简单的导入 ...

  9. java利用EasyPoi实现Excel导出功能

    easypoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员 就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板 语言( ...

  10. 我把这个贼好用的Excel导出工具开源了!!

    写在前面 不管是传统软件企业还是互联网企业,不管是管理软件还是面向C端的互联网应用.都不可避免的会涉及到报表操作,而对于报表业务来说,一个很重要的功能就是将数据导出到Excel.如果我们在业务代码中, ...

随机推荐

  1. Wood,微型 Java ORM 框架(首次发版)

    Wood,微型 Java ORM 框架(支持:java sql,xml sql,annotation sql:事务:缓存:监控:等...),零依赖! 特点和理念: 跨平台:可以嵌入到JVM脚本引擎(j ...

  2. Note -「Suffix Automaton」SAM

    Part. 1 基本信息 Part. 1-1 SAM 的构成. SAM 由两个东西构成,一个是一个 DAWG,还有一棵外向树,叫 parent tree. 比如,给你一个字符串 \(S=\sf abb ...

  3. 33家国内外知名的手机广告平台的SDK名单汇总,吐血推荐

    下面格式:第一行是广告平台名称,第二行是SDK的包名特征,第三行是平台网站 多盟cn.domob.androidhttp://www.domob.cn/百度推广SDK com.baidu统计SDK c ...

  4. 造轮子之EventBus

    前面基础管理的功能基本开发完了,接下来我们来优化一下开发功能,来添加EventBus功能.EventBus也是我们使用场景非常广的东西.这里我会实现一个本地的EventBus以及分布式的EventBu ...

  5. 欢迎来到hitcorgi,corgi居然被抢注了

    1 #include <iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 cout << "Hello ...

  6. IIS和PHP相关权限问题及解决方案_500错误_500.19 - Internal Server Error与401未授权错误_401.3 - Unauthorized

    在IIS添加网站(假设站点为xxx.yyy.com,本例假设IIS版本为7.5或以上),如果采用IIS默认配置,会在创建站点同时创建相应同名的"应用程序池"(也是xxx.yyy.c ...

  7. Java 基础学习第二弹

    1. HashMap和HashT able的区别 HashMap和Hashtable是两种常见的哈希表数据结构,它们在实现上有一些区别. 线程安全性:Hashtable是线程安全的,而HashMap不 ...

  8. 万字解析XML配置映射为BeanDefinition的源码

    本文分享自华为云社区<Spring高手之路16--解析XML配置映射为BeanDefinition的源码>,作者:砖业洋__. 1. BeanDefinition阶段的分析 Spring框 ...

  9. GPTs破冰硅基文明社会

    GPTs破冰硅基文明社会 渐进是技术革命的常态 技术革命看似一夕之间就颠覆了世界,但实际上每项重大技术进步的背后,都经历了漫长的渐进积累.以蒸汽机为例,最初动力微弱.效率低下,需要大量工程师跟车维护, ...

  10. 二叉搜索树 & 平衡树

    二叉搜索树 & 平衡树 专题 0x00 前言 我 AFO 了,但不代表不写 Code 了... CSP-S 在数据结构上吃了大亏,就差这一点就一等了,所以觉得好好整整. 本篇博客主要研究二叉搜 ...