人事报表导出

步骤分析

构造Excel表格数据
创建工作簿
创建sheet
创建行对象
创建单元格对象
填充数据,设置样式
下载

代码实现

(1)配置controller

/*** 当月人事报表导出*  参数:*      年月-月(2018-02%)*/
@RequestMapping(value = "/export/{month}", method = RequestMethod.GET)
public void export(@PathVariable String month) throws Exception {//1.获取报表数据List<EmployeeReportResult> list = userCompanyPersonalService.findByReport(companyId,month);//2.构造Excel//创建工作簿//SXSSFWorkbook : 百万数据报表//Workbook wb = new XSSFWorkbook();SXSSFWorkbook wb = new SXSSFWorkbook(100); //阈值,内存中的对象数量最大数量//构造sheetSheet sheet = wb.createSheet();//创建行//标题String [] titles = "编号,姓名,手机,最高学历,国家地区,护照号,籍贯,生日,属相,入职时间,离职类型,离职原因,离职时间".split(",");//处理标题Row row = sheet.createRow(0);int titleIndex=0;for (String title : titles) {Cell cell = row.createCell(titleIndex++);cell.setCellValue(title);}int rowIndex = 1;Cell cell=null;for(int i=0;i<10000;i++){for (EmployeeReportResult employeeReportResult : list) {row = sheet.createRow(rowIndex++);// 编号,cell = row.createCell(0);cell.setCellValue(employeeReportResult.getUserId());// 姓名,cell = row.createCell(1);cell.setCellValue(employeeReportResult.getUsername());// 手机,cell = row.createCell(2);cell.setCellValue(employeeReportResult.getMobile());// 最高学历,cell = row.createCell(3);cell.setCellValue(employeeReportResult.getTheHighestDegreeOfEducation());// 国家地区,cell = row.createCell(4);cell.setCellValue(employeeReportResult.getNationalArea());// 护照号,cell = row.createCell(5);cell.setCellValue(employeeReportResult.getPassportNo());// 籍贯,cell = row.createCell(6);cell.setCellValue(employeeReportResult.getNativePlace());// 生日,cell = row.createCell(7);cell.setCellValue(employeeReportResult.getBirthday());// 属相,cell = row.createCell(8);cell.setCellValue(employeeReportResult.getZodiac());// 入职时间,cell = row.createCell(9);cell.setCellValue(employeeReportResult.getTimeOfEntry());// 离职类型,cell = row.createCell(10);cell.setCellValue(employeeReportResult.getTypeOfTurnover());// 离职原因,cell = row.createCell(11);cell.setCellValue(employeeReportResult.getReasonsForLeaving());// 离职时间cell = row.createCell(12);cell.setCellValue(employeeReportResult.getResignationTime());}}//3.完成下载ByteArrayOutputStream os = new ByteArrayOutputStream();wb.write(os);new DownloadUtils().download(os,response,month+"人事报表.xlsx");
}
package com.learn.common.utils;import org.apache.poi.ss.usermodel.Workbook;import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;public class DownloadUtils {public void download(ByteArrayOutputStream byteArrayOutputStream, HttpServletResponse response, String returnName) throws IOException {response.setContentType("application/octet-stream");returnName = response.encodeURL(new String(returnName.getBytes(),"iso8859-1"));          //保存的文件名,必须和页面编码一致,否则乱码response.addHeader("content-disposition","attachment;filename=" + returnName);response.setContentLength(byteArrayOutputStream.size());ServletOutputStream outputstream = response.getOutputStream();  //取得输出流byteArrayOutputStream.writeTo(outputstream);                 //写到输出流byteArrayOutputStream.close();                                   //关闭outputstream.flush();                                           //刷数据}
}

POI导出人事报表:代码实现相关推荐

  1. struts2 poi导出excel实例代码下载

    原文:struts2 poi导出excel实例代码下载 代码下载地址:http://www.zuidaima.com/share/1550463233526784.htm 页面展现成表格形式,添加ex ...

  2. Java和poi导出excel报表

    一:poi jar下载地址:点击打开链接: 二:工程截图: 三:运行效果截图: 四:源代码: Student.java: package com.poi.bean;import java.util.D ...

  3. POI导出表格Java代码实现

    POI导出表格 1. 引入依赖 2. Excel导出核心代码 2.1 核心代码导入包 2.2 核心util代码 2.3 Controller表格导出实现 3. Excel导出结果展示 3.1 导出链接 ...

  4. poi导出Excel报表多表头双层表头、合并单元格

    效果图: controller层方法: /**      *      * 导出Excel报表      * @param request      * @return      *      */ ...

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

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

  6. 玩转POI、EasyExcel报表导入导出!

    POI.EasyExcel报表导出 前言 一.POI操作Excel 1.1 导入依赖包 1.2 编写测试代码: 1.3 03和07版本的区别 二.大文件写入 2.1 大文件写HSSF 2.2 大文件写 ...

  7. 【开发随机】JAVA+POI+自定义注解+反射构建自定义工具类实现快捷简便的Excel模板化导出(附demo代码)

    220907更新 项目UAT期间,用户反映了一个问题,数据量稍大的情况下,会出现"从某一行开始,往下所有行设置的字体和字体大小不生效"的BUG. 经过排查,发现原因是:POI的XS ...

  8. cpu java poi 导出_java基于poi导出excel透视表代码实例

    这篇文章主要介绍了java基于poi导出excel透视表代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 从前,我是一个前端程序猿,怀着对打通 ...

  9. JAVA导出Excel通用工具类——第一篇:详细介绍POI 导出excel的多种复杂情况,包括动态设置筛选、动态合并横向(纵向)单元格等多种复杂情况——保姆级别,真的不能再详细了,代码拿来即用)

    JAVA导出Excel通用工具--第一篇:详细介绍POI 导出excel的多种复杂情况,包括动态设置筛选.动态合并横向(纵向)单元格等多种复杂情况--保姆级别,真的不能再详细了,封装通用工具类,代码拿 ...

最新文章

  1. 深入理解Java原始数据类型和包装类关于==和equals的比较
  2. 【深度学习】最新「深度学习社区发现」综述论文,174篇文献概述六大类方法(含Github资源)...
  3. hcharts生成图表
  4. signature=267d7b238718fa0d900b4fd94e068fe9,Modelowanie widm NMR kwadrupolowych jąder
  5. php外贸后台,…外贸购物商城网站开发… PHP开发 提供源代码 外贸网站案例 直接购买案例 雇佣兵网...
  6. C# 对话框使用整理
  7. 【Linux】Linux的关机和虚拟机克隆、快照
  8. python 处理CSV数据
  9. 数据处理——数据编码
  10. 【数据库原理实验(openGauss)】 使用JDBC连接数据库
  11. Android自定义标题栏
  12. 自定义新浪微博分享按钮
  13. linux ping 获取网络状态,Shell - 长 ping 脚本监控网络状态
  14. SoilGrid 250米土壤质地数据集
  15. 第3-2课:用三个水桶等分 8 升水的问题
  16. 浏览器查看请求与响应报文
  17. 【linux 防火墙】Linux如何关闭防火墙
  18. 著名专家托马斯·拉姆什评孙宇晨出任格林纳达常驻WTO代表
  19. PDPS 服务器型Imtools的安装与最新一期许可证分享及替换方法
  20. nodejs+IIS+WebMatrix

热门文章

  1. Python3 嵌套函数
  2. 微信小游戏“跳一跳”,Python“外挂”已上线
  3. C#修改系统环境变量,调用批处理bat
  4. bfc和haslayout
  5. javascript技巧及常用事件方法集合(全)
  6. BZOJ3028食物——生成函数+泰勒展开
  7. SpringBoot b2b2c 多用户商城系统(八):配置中心服务化和高可用
  8. Luogu2295 MICE
  9. webstrom中的快捷键
  10. 5.Redis 发布订阅