2019独角兽企业重金招聘Python工程师标准>>>

html

<a href="/visitor/export">导出excel</a>

controller

    /*** excel 导出*/@RequestMapping(value ="/export")public ModelAndView exportExcel(HttpServletRequest request, HttpServletResponse response){try {// 查出用户数据List<Map<String, Object>> vistors = visitorService.selectMaps(null);String title ="访客管理";String[] rowsName=new String[]{"ID","园区id","访客姓名","访客电话","预约时间"};List<Object[]>  dataList = new ArrayList<Object[]>();Object[] objs = null;for (int i = 0; i < vistors.size(); i++) {Map<String, Object> vistor = vistors.get(i);objs = new Object[rowsName.length];objs[0] = vistor.get("id");objs[1] = vistor.get("parkId");objs[2] = vistor.get("visitorName");objs[3] = vistor.get("visitorMobile");objs[4] = vistor.get("appointTime");dataList.add(objs);}//ExportExcelUtils ex =new ExportExcelUtils(title, rowsName, dataList,response);ex.exportData();} catch (Exception e) {e.printStackTrace();}return null;}

utils

package com.stylefeng.guns.modular.utils;import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;import javax.servlet.http.HttpServletResponse;import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.util.CellRangeAddress;public class ExportExcelUtils {private String title; // 导出表格的表名private String[] rowName;// 导出表格的列名private List<Object[]>  dataList = new ArrayList<Object[]>(); // 对象数组的List集合private HttpServletResponse  response;// 传入要导入的数据public ExportExcelUtils(String title,String[] rowName,List<Object[]>  dataList,HttpServletResponse  response){this.title=title;this.rowName=rowName;this.dataList=dataList;this.response = response;}// 导出数据public void exportData(){try {HSSFWorkbook workbook =new HSSFWorkbook(); // 创建一个excel对象HSSFSheet sheet =workbook.createSheet(title); // 创建表格// 产生表格标题行HSSFRow rowm  =sheet.createRow(0);  // 行HSSFCell cellTiltle =rowm.createCell(0);  // 单元格// sheet样式定义HSSFCellStyle columnTopStyle = this.getColumnTopStyle(workbook); // 头样式HSSFCellStyle style = this.getStyle(workbook);  // 单元格样式/*** 参数说明* 从0开始   第一行 第一列 都是从角标0开始* 行 列 行列    (0,0,0,5)  合并第一行 第一列  到第一行 第六列* 起始行,起始列,结束行,结束列** new Region()  这个方法使过时的*/// 合并第一行的所有列sheet.addMergedRegion(new CellRangeAddress(0, (short) 0, 0, (short) (rowName.length-1)));cellTiltle.setCellStyle(columnTopStyle);cellTiltle.setCellValue(title);int columnNum = rowName.length;  // 表格列的长度HSSFRow rowRowName = sheet.createRow(1);  // 在第二行创建行HSSFCellStyle cells =workbook.createCellStyle();cells.setBottomBorderColor(HSSFColor.BLACK.index);rowRowName.setRowStyle(cells);// 循环 将列名放进去for (int i = 0; i < columnNum; i++) {HSSFCell  cellRowName = rowRowName.createCell((int)i);cellRowName.setCellType(HSSFCell.CELL_TYPE_STRING); // 单元格类型HSSFRichTextString text = new HSSFRichTextString(rowName[i]);  // 得到列的值cellRowName.setCellValue(text); // 设置列的值cellRowName.setCellStyle(columnTopStyle); // 样式}// 将查询到的数据设置到对应的单元格中for (int i = 0; i < dataList.size(); i++) {Object[] obj = dataList.get(i);//遍历每个对象HSSFRow row = sheet.createRow(i+2);//创建所需的行数for (int j = 0; j < obj.length; j++) {HSSFCell  cell = null;   //设置单元格的数据类型if(j==0){// 第一列设置为序号cell = row.createCell(j,HSSFCell.CELL_TYPE_NUMERIC);cell.setCellValue(i+1);}else{cell = row.createCell(j,HSSFCell.CELL_TYPE_STRING);if(!"".equals(obj[j]) && obj[j] != null){cell.setCellValue(obj[j].toString());                       //设置单元格的值}else{cell.setCellValue("  ");}}cell.setCellStyle(style); // 样式}}//  让列宽随着导出的列长自动适应sheet.autoSizeColumn((short)0); //调整第一列宽度sheet.autoSizeColumn((short)1); //调整第二列宽度sheet.autoSizeColumn((short)2); //调整第三列宽度sheet.autoSizeColumn((short)3); //调整第四列宽度sheet.autoSizeColumn((short)4); //调整第五列宽度sheet.autoSizeColumn((short)5); //调整第六列宽度if(workbook !=null){try{// excel 表文件名String fileName = title + String.valueOf(System.currentTimeMillis()).substring(4, 13) + ".xls";String fileName11 = URLEncoder.encode(fileName,"UTF-8");String headStr = "attachment; filename=\"" + fileName11 + "\"";response.setContentType("APPLICATION/OCTET-STREAM");response.setHeader("Content-Disposition", headStr);OutputStream out = response.getOutputStream();workbook.write(out);out.flush();out.close();}catch (IOException e){e.printStackTrace();}}}catch(Exception e){e.printStackTrace();}}public HSSFCellStyle getColumnTopStyle(HSSFWorkbook workbook) {// 设置字体HSSFFont font = workbook.createFont();//设置字体大小font.setFontHeightInPoints((short)11);//字体加粗font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//设置字体名字font.setFontName("Courier New");//设置样式;HSSFCellStyle style = workbook.createCellStyle();//设置底边框;style.setBorderBottom(HSSFCellStyle.BORDER_THIN);//设置底边框颜色;style.setBottomBorderColor(HSSFColor.BLACK.index);//设置左边框;style.setBorderLeft(HSSFCellStyle.BORDER_THIN);//设置左边框颜色;style.setLeftBorderColor(HSSFColor.BLACK.index);//设置右边框;style.setBorderRight(HSSFCellStyle.BORDER_THIN);//设置右边框颜色;style.setRightBorderColor(HSSFColor.BLACK.index);//设置顶边框;style.setBorderTop(HSSFCellStyle.BORDER_THIN);//设置顶边框颜色;style.setTopBorderColor(HSSFColor.BLACK.index);//在样式用应用设置的字体;style.setFont(font);//设置自动换行;style.setWrapText(false);//设置水平对齐的样式为居中对齐;style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//设置垂直对齐的样式为居中对齐;style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);return style;}public HSSFCellStyle getStyle(HSSFWorkbook workbook) {// 设置字体HSSFFont font = workbook.createFont();//设置字体大小//font.setFontHeightInPoints((short)10);//字体加粗//font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//设置字体名字font.setFontName("Courier New");//设置样式;HSSFCellStyle style = workbook.createCellStyle();//设置底边框;style.setBorderBottom(HSSFCellStyle.BORDER_THIN);//设置底边框颜色;style.setBottomBorderColor(HSSFColor.BLACK.index);//设置左边框;style.setBorderLeft(HSSFCellStyle.BORDER_THIN);//设置左边框颜色;style.setLeftBorderColor(HSSFColor.BLACK.index);//设置右边框;style.setBorderRight(HSSFCellStyle.BORDER_THIN);//设置右边框颜色;style.setRightBorderColor(HSSFColor.BLACK.index);//设置顶边框;style.setBorderTop(HSSFCellStyle.BORDER_THIN);//设置顶边框颜色;style.setTopBorderColor(HSSFColor.BLACK.index);//在样式用应用设置的字体;style.setFont(font);//设置自动换行;style.setWrapText(false);//设置水平对齐的样式为居中对齐;style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//设置垂直对齐的样式为居中对齐;style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);return style;}
}

参考网站 : https://blog.csdn.net/qq_23191147/article/details/50588581

转载于:https://my.oschina.net/u/3556610/blog/2239920

java spring maven excel 导出相关推荐

  1. java spring maven pdf 导出

    2019独角兽企业重金招聘Python工程师标准>>> pdf表单模板 js : 渲染出动态的html ,其实就是一个a标签 Visitor.operateFormatter = f ...

  2. Hutool Java 工具类库Excel导出,配置宽度自适应极度舒适

    文章目录 前言 一.Hutool是什么? 二.使用步骤 1.引入maven依赖 2. 配置宽度自适应 3.Excel导出 三.原理 前言 一.Hutool是什么? Hutool是一个小而全的Java工 ...

  3. Java后端实现Excel导出,及添加Excel文件标题样式

    简单Java实现Excel文件导出 Java导出要在action层(controller层)中操作 需要到的jar包: 后端代码: 后面两个函数都是设置Excel文件里的标题样式,专注第一个方法就可以 ...

  4. java 复杂表头excel导出合并单元格

    easyexcel-wraper easyexcel-wraper是什么? 一个方便读取excel内容,且可以使用注解进行内容验证的包装工具 用到alibaba 2.1.4版本 定义导出excel复杂 ...

  5. java+自带excel导出_Java实现微信内置浏览器导出Excel表格功能

    最近做项目的时候遇到了这样一个问题,微信内置的浏览器把下载这个功能屏蔽了.唉,,,折腾了一天,从网上各种找资料,但是给的解决方案都不是我想要的(也不知道谁复制的谁的,基本都一样). 在快下班的时候,我 ...

  6. java百万级别excel导出(easyExcel),java在线视频观看

    * @CreateDate: 2018/9/29 18:05 * @UpdateUser: yaomaoyang * @UpdateDate: 2018/9/29 18:05 * @UpdateRem ...

  7. Java代码安装maven jar_Java中Maven项目导出jar包配置的示例代码

    具体代码如下所示: src/main/java src/main/resources ${project.build.directory} **/*.java src/test/java src/te ...

  8. java 通用工具 POI XSSF导出.xls或者.xlsx

    我是用的java类反射方式生成的excel 1. pom依赖 <!-- <artifactId>poi</artifactId> //适用于低版本,也就是xls结尾的Ex ...

  9. java如何导入和导出ex_SpringBoot中关于Excel的导入和导出

    前言 由于在最近的项目中使用Excel导入和导出较为频繁,以此篇博客作为记录,方便日后查阅.本文前台页面将使用layui,来演示对Excel文件导入和导出的效果.本文代码已上传至我的gitHub,欢迎 ...

  10. Jett+Spring MVC实现Excel导出

    接上文,由于本人在使用Jxls进行Excel导出时遇到数据遍历时Shift Row的格式问题无法解决,同时项目又较为紧张,于是尝试了使用Jett,幸好该框架基本能满足本人的需求,同时感觉各项功能的支持 ...

最新文章

  1. shell----bash
  2. html 3d转换动画,开源项目:CSS 3D转换和动画学习示例教程
  3. linux删文件进程叫什么,Linux find 查找 并删除文件 杀掉进程
  4. centos7安装nginx和php,centos7安装nginx1.10和php7
  5. 如何备份服务器日志到其他服务器_KIWI Syslog日志服务器搭建及配置
  6. jQuery UI全教程之一(dialog的使用教程)
  7. 能干什么_闲鱼流量系统能干什么?真的有用吗?
  8. 空间滤波_第三章 灰度变换与空间滤波-(六)锐化空间滤波器之拉普拉斯算子...
  9. SQL 宝典(本人总结供学习使用)
  10. Roller 博客系统的搭建过程
  11. Hackintosh黑苹果i7-8700+华硕B360MTUFGAME_S+RX5700最终版EFI
  12. Python中函数的括号
  13. 使用Keras进行图像分类
  14. VS2017搭建linux开发环境
  15. 中资电信银行股将成市场旗手
  16. 一周学习小总结,MySQL进阶~
  17. Clannad(1)
  18. C++抽奖(随机数+人名的不停闪烁)
  19. 进原神显示服务器错误黑屏,《原神》数据异常怎么办 数据异常问题解决方法...
  20. 温度报警程序c语言设计,单片机温度报警器与时钟显示C程序和原理图

热门文章

  1. 案例:手动输入一个字符串,打散放进一个列表,小写字母反序 大写字母保持不变...
  2. 解决stackoverflow加载慢的插件
  3. 利用 Commons-Fileupload 实现文件上传分析(转)
  4. JAVA基础--JAVA语言组成01
  5. sublime插件CSS转rem配置
  6. 20145303刘俊谦 Exp7 网络欺诈技术防范
  7. vector理解一波~~~
  8. Android 动态显示和隐藏软键盘
  9. springboot的Interceptor、Filter、Listener及注册
  10. 一起来学Spring Cloud | 第一章 :如何搭建一个多模块的springcloud项目