Controller获取数据导出Excel,详细教程

IDEA 2019-03版本 spring 3.x版本 tomcat 7.5 老项目 所以easypoi用的最老版本,根据朋友们自己使用的版本选择相应的版本
1:导入jar包 ps:Maven项目导入对应依赖即可

**2:创建实体类 User **

public class User {//name代表 表头行 orderNum 代表 排序顺序@Excel(name="姓名",orderNum = "0")private String name;@Excel(name="性别",orderNum = "1")private String sex;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}

创建工具类 FileUtil工具类,固定写法,拿去直接用就可以

package hr.manage.util;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import org.apache.poi.ss.usermodel.Workbook;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.List;public class FileUtil {public static void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass,String fileName, HttpServletResponse response){defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName));}//设置导出文件内的内容private static void defaultExport(List<?> list, Class<?> pojoClass, String fileName, HttpServletResponse response, ExportParams exportParams) {Workbook workbook = ExcelExportUtil.exportExcel(exportParams,pojoClass,list);if (workbook != null);downLoadExcel(fileName, response, workbook);}//设置导出文件名,编码private static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) {try {response.setCharacterEncoding("UTF-8");//让服务器告诉浏览器它发送的数据属于什么文件类型response.setHeader("content-Type", "application/vnd.ms-excel");//当Content-Type 的类型为要下载的类型时 , 这个信息头会告诉浏览器这个文件的名字和类型。response.setHeader("Content-Disposition","attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));workbook.write(response.getOutputStream());} catch (IOException e) {//  throw new NormalException(e.getMessage());}}}

创建UserController

package hr.manage.controller.book;
import hr.manage.entity.User;
import hr.manage.util.FileUtil;
import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
//导出数据为Excel
@RequestMapping("/user")
@Controller
public class UserController {@RequestMapping("/excel")public void exceladd(HttpServletResponse response){List<User>list = new ArrayList<>();list.add(new User("张三","男"));list.add(new User("李四","女"));// 参数// 1:传入数据集合,2:标题,3:工作表名称 4:实体类的Class 5:保存的Excel名字,传入HttpServletResponseFileUtil.exportExcel(list,"花名册","员工",User.class,"花名册.xls",response);}

开启tomcat 访问你自己的路径

打开Excel 这时数据已经导到里面了

前面步骤都完成的,现在我们可以改造一下代码,读取数据库中的数据
创建和数据表对应的实体类

package hr.manage.entity;import cn.afterturn.easypoi.excel.annotation.Excel;import java.util.Date;import javax.xml.soap.Detail;public class CwgBookManager {//主键idprivate Integer id;//编号@Excel(name = "编号",orderNum = "0")private String number;//书名@Excel(name = "书名",orderNum = "1")private String name;//图书号@Excel(name = "图书编号",orderNum = "2")private String serialNumber;//出版社@Excel(name = "出版社",orderNum = "3")private String publisher;//作者@Excel(name = "作者",orderNum = "4")private String author;//创建人@Excel(name = "创建人",orderNum = "5")private int createBy;//创建时间@Excel(name = "创建时间",exportFormat ="yyyy-MM-dd", orderNum = "6")private Date creationDate;//册数,数量@Excel(name = "册数",orderNum = "7")private int total;//价格@Excel(name = "价格",orderNum = "8")private double price;//备注,详情@Excel(name = "备注",orderNum = "9")private String detail;
//  状态0:无备案,1,有备案@Excel(name = "备案状态",orderNum = "10",type = 10)private int status;//备用字段1private String reserve;//备用字段2private String spare;//备用字段3private String standby;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getNumber() {return number;}public void setNumber(String number) {this.number = number;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSerialNumber() {return serialNumber;}public void setSerialNumber(String serialNumber) {this.serialNumber = serialNumber;}public String getPublisher() {return publisher;}public void setPublisher(String publisher) {this.publisher = publisher;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public int getCreateBy() {return createBy;}public void setCreateBy(int createBy) {this.createBy = createBy;}public Date getCreationDate() {return creationDate;}public void setCreationDate(Date creationDate) {this.creationDate = creationDate;}public int getTotal() {return total;}public void setTotal(int total) {this.total = total;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public String getDetail() {return detail;}public void setDetail(String detail) {this.detail = detail;}public int getStatus() {return status;}public void setStatus(int status) {this.status = status;}public String getReserve() {return reserve;}public void setReserve(String reserve) {this.reserve = reserve;}public String getSpare() {return spare;}public void setSpare(String spare) {this.spare = spare;}public String getStandby() {return standby;}public void setStandby(String standby) {this.standby = standby;}}

查询数据库表数据

@Repository
public interface BookDao {/*** 查询book表数据* @return*/@Select("SELECT * FROM cwg_bookmanager")public List<CwgBookManager> findBookList();

编写Controller

package hr.manage.controller.book;
import hr.manage.dao.book.BookDao;
import hr.manage.entity.CwgBookManager;
import hr.manage.util.FileUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
/*** 导出Execl*/
@Controller
@RequestMapping("/hrm/book")
public class ExcelBookController {@Resourceprivate BookDao book;@RequestMapping("/demo")public void execl(HttpServletResponse response) throws IOException {//对应你们查询数据库方法List<CwgBookManager> list = book.findBookList();System.out.println("Excel");FileUtil.exportExcel(list,"图书信息","朱港超",CwgBookManager.class,"图书.xls",response);}
}

访问该Controller路径即可
打开Excel文件 这是可以看到数据库内的数据都导入到Excel中了

前台页面可以编写一个按钮,绑定一个单击事件

jq代码

function excel(){$.ajax({url:'/HRManagement/hrm/book/demo',type:'get',success:function (data) {if (data != null){alert("导出成功");}  }});
}

Controller数据导出Excel 详细教程相关推荐

  1. Controller数据导出Excel 详细教程——easypoi-base,easypoi-web,easypoi-annotation

    Controller获取数据导出Excel,详细教程 1:导入对应依赖 <dependency><groupId>cn.afterturn</groupId>< ...

  2. POI导出Excel详细教程

    文章目录 前言 一.引入jar包依赖 二.创建自定义导出Excel样式类 三.创建核心导出工具类 四.创建导出对象实体Bean 五.具体使用案例 5.1.创建SQL脚本和初始化数据 5.2.写一个查询 ...

  3. C#数据导出Excel详细介绍

    概要: excel导出在C#代码中应用己经很广泛了,我这里就做些总结,供自己和读者学习用. Excel知识点. 一.添加引用和命名空间 添加Microsoft.Office.Interop.Excel ...

  4. 将页面中表格数据导出excel格式的文件(vue)

    近期由于项目需要,需要将页面中的表格数据导出excel格式的文件,折腾了许久,在网上各种百度,虽然资料不少,但是大都不全,踩了许多坑,总算是皇天不负有心人,最后圆满解决了. 1.安装相关依赖(npm安 ...

  5. Java程序员从笨鸟到菜鸟之(一百零四)java操作office和pdf文件(二)利用POI实现数据导出excel报表...

    在上一篇博客中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式.不仅仅简单的读取office中的数据.尤其是在生 ...

  6. DataTable中的数据导出Excel文件

    DataTable中的数据导出Excel文件 View Code ///<summary> /// 将DataTable中的数据导出到指定的Excel文件中 ///</summary ...

  7. php数据的导出到excel,php 数据的导出到excel表格-怎么将php数据导出excel

    怎么使用php把表格中的数据导入到excel中 下面写的一个PHP导出数据到CSV问价的函数,你到时候直接调用了 /** * 导出CSV * @param string $fileName文件名字 * ...

  8. 大量数据导出Excel方案

    序 最近可能会遇到大量数据导出Excel的场景,今天趁现在需求告一段落来做下技术预研,然后这里就顺便分享给大家. 一.数据量预判 因为我们是做物联网的,这里要导出的数据就是设备的上报数据.客户说要这些 ...

  9. 在vue中把数据导出Excel文件

    在vue中把数据导出Excel文件 第一次尝试写文章 在vue中把数据导出成Excel格式的文件,话不多,上代码: 第一步我们要先安装几个集成的插件 npm install -S file-saver ...

  10. JSON数据导出Excel表

    JSON数据导出Excel表 应老板要求写了一个实用的小功能,需求是将api接口返回的JSON数据导出Excel表,过程中改了两稿,一是前端js直接导出一个表,另一是分门别类在java中同时导出多个表 ...

最新文章

  1. 平衡二叉树-AVL c/c++代码实现
  2. MYSQL实现分组排序并取组内第一条数据
  3. 【技术教程】SequoiaDB对接Kafka
  4. 如何安装SAP JCo3
  5. 富交互Web应用中的撤销和前进
  6. HTML DOM教程 22-HTML DOM Form 对象
  7. 数据结构---array
  8. 大一计算机应用的实验报告,大一《计算机应用基础》实验报告1.doc
  9. php 修改服务器ip,php 修改服务器ip
  10. Java编写敏感词过滤程序
  11. 汇编语言浮点数指令集
  12. Netty原理:pipeline
  13. asp毕业设计——基于asp+access的学生论坛设计与实现(毕业论文+程序源码)——学生论坛
  14. 判断日期是否是明天,今天,昨天
  15. 2022ChinaVis会议笔记
  16. Android面试你必须要知道的那些知识,已拿offer附真题解析
  17. 列出Excel所有sheet名称
  18. 图像分类竞赛——添翼杯人工智能应用创新大赛——rank4解决方案
  19. mysql5.1 优化_7. 优化 - [ MySQL 5.1参考手册 ] - 在线原生手册 - php中文网
  20. 国密sm4 ECB、CEC模式探究与在iOS中的应用

热门文章

  1. c语言双向循环链表合并,双向循环链表的合并
  2. C++实现双向循环链表
  3. SQL SERVER 数据库日志已满,清理数据库日志的方法
  4. 十折交叉验证和混淆矩阵
  5. 照片宽高比怎么设置_2019年中级会计报名照片上传完整攻略
  6. mysql 数据库存放图片路径_mysql数据库可以存图片路径?
  7. 2020年“泰迪杯”数据分析职业技能大赛A 题优秀报告:教育平台的线上课程智能推荐策略
  8. 康奈尔笔记法,高效学习方法推荐
  9. 刚毕业一个月,7 月正式入职深圳互联网公司的前端月度工作汇报 |总结
  10. 美容院管理系统高效管理门店店务?