公司的报表工具太难用,我三天撸了个Excel工具,运营小姐姐直呼太好用了,现已开源!!(建议收藏)

公司的报表工具太难用,我三天撸了个Excel工具,运营小姐姐直呼太好用了,现已开源!!(建议收藏)冰河手把手教你撸Excel报表工具,俘获运营小姐姐的心,一起加油,搞起来!!冰河强烈建议收藏!!

大家好,又见面了,我是你们的朋友全栈君。

大家好,我是冰河~~

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

如果我们在业务代码中,嵌入很多导出Excel的逻辑,那我们的代码就会变得异常臃肿,不利于维护,而且导出Excel的核心逻辑基本相同。那我们能否将导出Excel的核心逻辑封装成一个工具,当我们需要导出Excel时,只是向工具简单的传入数据呢?于是乎,mykit-excel诞生了!

mykit-excel的github链接地址为:

https://github.com/sunshinelyz/mykit-excel

欢迎各位小伙伴Star和Fork源码,也欢迎大家pr你牛逼哄哄的代码,我们一起来养肥它!

如果文章对你有点帮助,小伙伴们点赞、收藏、评论和分享,走起呀~~

框架简述

mykit-excel插件是通用的Excel导入导出框架,旨在提供通用的Excel导入导出功能,支持以注解方式选择JavaBean中的部分字段导出,并提供注解指定Excel列标题和排序功能。

框架结构

  • mykit-excel-annotation: mykit-excel框架的注解模块,提供注解标识类中的哪些字段需要导出到Excel
  • mykit-excel-common: mykit-excel框架的通用工具类,提供通用的工具模板
  • mykit-excel-servlet: mykit-excel框架提供的Web模块,能够支持Web请求导出Excel
  • mykit-excel-springmvc: mykit-excel框架提供的SpringMVC模块,能够支持Web请求导出Excel
  • mykit-excel-test: mykit-excel框架提供的常规测试模块
  • mykit-excel-springboot: mykit-excel框架提供的SpringBoot测试模块

测试用例

(1)测试常规导出Excel工具类的Java类为:io.mykit.excel.springboot.normal.export.TestExportExcelUtils,直接运行该类即可。

(2)测试注解导出Excel工具类的Java类为:io.mykit.excel.springboot.annotation.export.TestAnnotationExportExcelUtils,直接运行该类即可。

(3)测试SpringMVC导出Excel的Java类为io.mykit.excel.springboot.normal.springmvc.NormalExportExcelContorller,运行SpringBoot的启动类io.mykit.excel.springboot.MykitExcelCoreApplication之后,使用resources/html目录下的normalExportExcel.html文件导出Excel即可。如果设置的IP和端口与mykit-excel-springboot模块不同,则修改normalExportExcel.html文件中的IP和端口即可。

(4)测试基于注解导出Java类为io.mykit.excel.springboot.annotation.springmvc.AnnotationExportExcelController,运行SpringBoot的启动类io.mykit.excel.springboot.MykitExcelCoreApplication 之后,使用resources/html目录下的annotationExportExcel.html文件导出Excel即可。如果设置的IP和端口与mykit-excel-springboot模块不同,则修改annotationExportExcel.html文件中的IP和端口即可。

注解说明

如果使用注解方式导出Excel,则需要在JavaBean的属性字段上添加@ExcelColumn注解,此注解中有三个属性,分别如下:

  • isExport:表示是否将当前字段导出到Excel,true:是;false:否
  • title:导出到Excel时的当前列的标题;
  • sort:当前字段导出到Excel的列时,在Excel中的位置,值越小,当前列越靠前。

使用方式

普通方式导出Excel

如果是普通的Java项目,只是将Excel文件导出到本地磁盘,则只需要在项目的pom.xml文件中增加如下配置

<dependency>
    <groupId>io.mykit.excel</groupId>
    <artifactId>mykit-excel-common</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>

创建测试JavaBean

@Data
public class Student implements Serializable { 
   
    private static final long serialVersionUID = -2987207599880734028L;
    private int id;
    private String name;
    private String sex;

    public Student(){ 
   

    }

    public Student(int id, String name, String sex){ 
   
        this.id = id;
        this.name = name;
        this.sex = sex;
    }
}

接下来,在程序中按照如下方式导出Excel文件即可

public static void main(String[] args) throws Exception{ 
   
    ExportExcelUtils<Student> utils = new ExportExcelUtils<Student>();
    List<Student> list = new ArrayList<Student>();
    for (int i = 0; i < 10; i++) { 
   
        list.add(new Student(111,"张三","男"));
        list.add(new Student(111,"李四","男"));
        list.add(new Student(111,"王五","女"));
    }
    String[] columnNames = { 
    "ID", "姓名", "性别" };
    utils.exportExcel("用户导出", columnNames, list, new FileOutputStream("E:/test.xls"), ExportExcelUtils.EXCEL_FILE_2003);
}

导出的文件如下所示

公司的报表工具太难用,我三天撸了个Excel工具,运营小姐姐直呼太好用了,现已开源!!(建议收藏)

注解方式导出Excel

如果是普通的Java项目,以注解方式将Excel文件导出到本地磁盘,则只需要在项目的pom.xml文件中增加如下配置

<dependency>
    <groupId>io.mykit.excel</groupId>
    <artifactId>mykit-excel-common</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>

创建测试JavaBean

(1) 创建父类JavaBean

@Data
public class Person implements Serializable { 
   
    private static final long serialVersionUID = 3251965335162340137L;

    @ExcelColumn(isExport = true, title = "编号", sort = 2)
    private String id ;

    @ExcelColumn(isExport = true, title = "姓名", sort = 3)
    private String name;
    
    public Person(){ 
   
    }

    public Person(String id, String name){ 
   
        this.id = id;
        this.name = name;
    }
}

(2) 创建子类JavaBean

@Data
public class Student extends Person{ 
   
    private static final long serialVersionUID = -6180523202831503132L;

    @ExcelColumn(isExport = false, title = "班级编号", sort = 1)
    private String classNo;

    private Integer score;

    @ExcelColumn(isExport = true, title = "爱好", sort = 5)
    private String hobby;
    
    public Student(){ 
   
    }

    public Student(String id, String name, String classNo, Integer score, String hobby){ 
   
        super(id, name);
        this.classNo = classNo;
        this.score = score;
        this.hobby = hobby;
    }
}

接下来,在程序中按照如下方式导出Excel文件即可

public class TestAnnotationExportExcelUtils { 
   
    public static void main(String[] args) throws FileNotFoundException { 
   
        // 准备数据
        List<Student> list = new ArrayList<Student>();
        for (int i = 1; i <= 10; i++) { 
   
            list.add(new Student("00" + i, "张三", "001", 100, "篮球"));
        }
        AnnotationExcelExportUtils<Student> utils = new AnnotationExcelExportUtils<Student>();
        utils.exportExcel("用户导出", list, new FileOutputStream("e:/E:/test.xls"), Student.class, AnnotationExcelExportUtils.EXCEL_FILE_2003);
    }
}

导出的文件如下所示

公司的报表工具太难用,我三天撸了个Excel工具,运营小姐姐直呼太好用了,现已开源!!(建议收藏)

Web方式导出Excel

如果是基于Java Web或Spring MVC项目,需要导出Excel,则需要在项目的pom.xml文件中,加入如下配置

<dependency>
    <groupId>io.mykit.excel</groupId>
    <artifactId>mykit-excel-servlet</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>

创建测试JavaBean

@Data
public class Student implements Serializable { 
   
    private static final long serialVersionUID = -2987207599880734028L;
    private int id;
    private String name;
    private String sex;

    public Student(){ 
   

    }

    public Student(int id, String name, String sex){ 
   
        this.id = id;
        this.name = name;
        this.sex = sex;
    }
}

接下来,在程序中按照如下方式导出Excel文件即可

@RequestMapping("/excel")
public void getExcel(HttpServletRequest request, HttpServletResponse response) throws Exception { 
   
    // 准备数据
    List<Student> list = new ArrayList<Student>();
    for (int i = 0; i < 10; i++) { 
   
        list.add(new Student(111,"张三","男"));
        list.add(new Student(111,"李四","男"));
        list.add(new Student(111,"王五","女"));
    }
    String[] columnNames = { 
    "ID", "姓名", " 性别"};
    String fileName = "springboot_excel";
    ExportExcelWrapper<Student> util = new ExportExcelWrapper<Student>();
    util.exportExcel(fileName, fileName, columnNames, list, response, ExportExcelUtils.EXCEL_FILE_2003);
}

导出的文件如下所示

公司的报表工具太难用,我三天撸了个Excel工具,运营小姐姐直呼太好用了,现已开源!!(建议收藏)

基于注解的Web方式导出Excel

如果是基于Java Web或Spring MVC项目,需要基于注解导出Excel,则需要在项目的pom.xml文件中,加入如下配置

<dependency>
    <groupId>io.mykit.excel</groupId>
    <artifactId>mykit-excel-servlet</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>

创建测试JavaBean

(1) 创建父类JavaBean

@Data
public class Person implements Serializable { 
   
    private static final long serialVersionUID = 3251965335162340137L;

    @ExcelColumn(isExport = true, title = "编号", sort = 2)
    private String id ;

    @ExcelColumn(isExport = true, title = "姓名", sort = 3)
    private String name;
    
    public Person(){ 
   
    }

    public Person(String id, String name){ 
   
        this.id = id;
        this.name = name;
    }
}

(2) 创建子类JavaBean

@Data
public class Student extends Person{ 
   
    private static final long serialVersionUID = -6180523202831503132L;

    @ExcelColumn(isExport = false, title = "班级编号", sort = 1)
    private String classNo;

    private Integer score;

    @ExcelColumn(isExport = true, title = "爱好", sort = 5)
    private String hobby;
    
    public Student(){ 
   
    }

    public Student(String id, String name, String classNo, Integer score, String hobby){ 
   
        super(id, name);
        this.classNo = classNo;
        this.score = score;
        this.hobby = hobby;
    }
}

接下来,在程序中按照如下方式导出Excel文件即可

@Controller
@RequestMapping(value = "/annotation/export")
public class AnnotationExportExcelController { 
   

    @RequestMapping("/excel")
    public void getExcel(HttpServletRequest request, HttpServletResponse response) throws Exception { 
   
        // 准备数据
        List<Student> list = new ArrayList<Student>();
        for (int i = 1; i <= 10; i++) { 
   
            list.add(new Student("00" + i, "张三", "001", 100, "篮球"));
        }
        String fileName = "springboot_excel";
        ExportExcelWrapper<Student> wrapper = new ExportExcelWrapper<Student>();
        wrapper.annotationExportExcel(fileName, fileName, list, Student.class, response, ExportExcelWrapper.EXCEL_FILE_2003);
    }
}

导出的文件如下所示

公司的报表工具太难用,我三天撸了个Excel工具,运营小姐姐直呼太好用了,现已开源!!(建议收藏)

前端测试代码

前端测试代码放在mykit-excel-springboot模块的src/main/resources/html目录下,修改html文件中的连接地址后,将其放在Tomcat或其他Web容器中,进行测试即可。

测试方式

常规测试

直接运行mykit-excel-springboot项目中的io.mykit.excel.springboot.normal.export.TestExportExcelUtils类即可

基于注解的常规测试

直接运行mykit-excel-springboot项目中的io.mykit.excel.springboot.annotation.export.TestAnnotationExportExcelUtils类即可

Web测试

(1)启动mykit-excel-springboot项目,即运行mykit-excel-springboot项目中的io.mykit.excel.springboot.MykitExcelCoreApplication

(2)将mykit-excel-springboot项目的src/main/resources/html下的normalExportExcel.html文件发布到Tomcat等Web容器中访问normalExportExcel.html文件的连接地址, 打开页面点击“Submit”按钮即可。

基于注解的Web测试

(1)启动mykit-excel-springboot项目,即运行mykit-excel-springboot项目中的io.mykit.excel.springboot.MykitExcelCoreApplication类。

(2)将mykit-excel-springboot项目的src/main/resources/html下的annotationExportExcel.html文件发布到Tomcat等Web容器中访问annotationExportExcel.html文件的连接地址, 打开页面点击“Submit”按钮即可。

写在最后

如果你想进大厂,想升职加薪,或者对自己现有的工作比较迷茫,都可以私信我交流,希望我的一些经历能够帮助到大家~~

推荐阅读:

好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,我是冰河,我们下期见~~

公司的报表工具太难用,我三天撸了个Excel工具,运营小姐姐直呼太好用了,现已开源!!(建议收藏)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/154049.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 使用activiti总结–bpmn画流程图

    节期结束,赶紧总结一下前几天使用的Activiti工作流的一些方法简单介绍一下Activiti:Activiti一套完整的方便的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。开发人员可以通过插件直接绘画出业务。开发工具:IDEA画流程图插件:actiBPM(在IDEA插件管理中安装就可以了)BPMN…

  • 关于各种型号单片机delay函数不起作用问题的解决方法

    关于各种型号单片机delay函数不起作用问题的解决方法这里以单片机HT45F75为例://定义一个延时xms毫秒的延时函数voiddelay(unsignedintxms) //xms代表需要延时的毫秒数{   unsignedintx,y;   for(x=xms;x&gt;0;x–)           for(y=960/4;y&gt;0;y–)           {                     …

  • 微信小程序开发入门教程

    微信小程序开发入门教程做任何程序开发要首先找到其官方文档,我们先来看看其有哪些官方文档。微信小程序开发文档链接为:https://mp.weixin.qq.com/debug/wxadoc/dev/index.html,如下图:  这里就是做微信小程序开发的全部官方文档。知道了文档的位置,下面我们来介绍下如何做一个微信小程序开发: /***************

  • windows 开机自动登录并锁定「建议收藏」

    windows 开机自动登录并锁定「建议收藏」首先来看看系统启动自动登录的设置:  按住Win键,再按R键(Win+R),启动”运行”窗口;  WindowsXP/2003/2008/2008R2输入”controluserpasswords2″(不含引号)回车;  Windows7输入”netplwiz”(不含引号),回车;  在”用户帐户”-“用户”界面中,取消”要使用本机,用户必须输入用户名和密码(E)”复选框;  按”确定”按钮

  • 安卓ddos攻击器_android设备是什么意思

    安卓ddos攻击器_android设备是什么意思原标题:Android移动设备上的DDOS攻击双11马上要到了,你家网站做好准备了吗什么是DDOS攻击?举个形象的例子你就明白了:某饭店可以容纳100人同时就餐,某日有个商家恶意竞争,雇佣了200人来这个饭店坐着不吃不喝,导致饭店满满当当无法正常营业。(DDOS攻击成功)老板当即大怒,派人把不吃不喝影响正常营业的人全都轰了出去,且不再让他们进来捣乱,饭店恢复了正常营业。(添加规则和黑名单进行D…

    2022年10月21日
  • 通用代码高亮插件(SyntaxHighlighter)

    通用代码高亮插件(SyntaxHighlighter)写这篇博文的起源是我想把自己的博客弄的更加美观,相信你也一样。        首先,我要说SyntaxHighlighter插件的实现方式及应用示例,然后再说明如何将其应用到自己的博客,使博客的代码着色更加美观。 源码: SyntaxHighlighter 示例源码下载SyntaxHighlighterSyntaxHighlighter源码下载1)        Sy…

    2022年10月31日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号