java导出excel并实现下载功能

  • 这里我们使用alibaba的依赖包
     <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.7</version></dependency>
  • entity
  • 这里如果不希望某个字段显示,就在该字段上加上@ExcelIgnore注解
package com.infoearth.modules.survey.entity;import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;import java.io.Serializable;
import java.util.Date;/*** 实体类** @author BladeX* @since 2021-02-24*/
@Data
@TableName("SURVEYJMRECORD")
//@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "Surveyjmrecord对象", description = "机民井统测记录表")
@ColumnWidth(value = 13)
public class Surveyjmrecord implements Serializable {private static final long serialVersionUID = 1L;/*** 主键    (机民井统测记录表)*/@ExcelIgnore@ApiModelProperty(value = "主键    (机民井统测记录表)")@TableId("ID")private String id;/*** 统测点号,外键,与水文地质点调查表ID关联*/@ExcelIgnore@ApiModelProperty(value = "统测点号,外键,与水文地质点调查表ID关联")@TableField("POINTID")private String pointid;/*** 野外编号*/@ExcelProperty(value = "野外编号")@ApiModelProperty(value = "野外编号")@TableField("GCEABC")private String gceabc;/*** 统测期次*/@ExcelProperty(value = "统测期次")@ApiModelProperty(value = "统测期次")@TableField("OBSERVE_PERIOD")private String observePeriod;/*** 测点高程*/@ExcelProperty(value = "测点高程")@ApiModelProperty(value = "测点高程")@TableField("MEAPOINTELEV")private Float meapointelev;/*** 测点距地面高度*/@ExcelProperty(value = "测点距地面高度")@ApiModelProperty(value = "测点距地面高度")@TableField("MEAGROHEIGHT")private Float meagroheight;}
  • serviceimpl
  • 我这里是多个sheet导出,如果小伙伴要单sheet就写一个就可以了
public String exportExcelByCode(String code) throws IOException {//这里的path是上传的服务器地址+编码(为了区别)String path = baseFilePath + code + "survey.xlsx";FileOutputStream outputStream = new FileOutputStream(path);//导出多个sheet,getjmList(code)是查出来List数据集合ExcelWriter excelWriter = EasyExcel.write(outputStream).build();excelWriter.write(getjmList(code),EasyExcel.writerSheet(0,"机民井统测记录表").head(Surveyjmrecord.class).build());excelWriter.write(getqdList(code),EasyExcel.writerSheet(1,"泉点统测记录表").head(Surveysprrecord.class).build());excelWriter.write(getAnhList(code),EasyExcel.writerSheet(2,"地下暗河统测记录表").head(Surveyriverrecord.class).build());excelWriter.write(gethkList(code),EasyExcel.writerSheet(3,"湖库统测记录表").head(Surveylakeresrecord.class).build());excelWriter.write(gethlList(code),EasyExcel.writerSheet(4,"河流统测记录表").head(Surveyrivernairerecord.class).build());excelWriter.finish();return path;}
  • controller层下载
@GetMapping(value = "/exportExcel",produces = "application/octet-stream")
@ApiOperation(value = "导出",notes = "")
public void exportExcel(@RequestParam String code,HttpServletResponse response) throws IOException {String path = basicinfoService.exportExcelByCode(code);File file = new File(path);String fileName = file.getName();InputStream is = new BufferedInputStream(new FileInputStream(file));byte[] bytes = new byte[is.available()];is.read(bytes);is.close();//清空responseresponse.reset();// 设置response的Header,设置浏览器response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));response.addHeader("Content-Length", "" + file.length());OutputStream toClient = new BufferedOutputStream(response.getOutputStream());response.setContentType("application/octet-stream");toClient.write(bytes);toClient.flush();toClient.close();}
  • 好了,excel导出功能到这里就结束了,小伙伴们直接可以拿来即用
  • 此文章主要记录遇到的问题,方便以后的查看

java导出excel并实现下载功能相关推荐

  1. Java POI 导出EXCEL经典实现 Java导出Excel弹出下载框

    原文转载:http://blog.csdn.net/evangel_z/article/details/7332535 目录(?)[+] 在web开发中,有一个经典的功能,就是数据的导入导出.特别是数 ...

  2. java导出excel 浏览器直接下载或者或以文件形式导出

    1 /**2 * excel表格直接下载3 */4 public static void exportExcelByDownload(HSSFWorkbook wb,HttpServletRespon ...

  3. java 导出excel表格并下载(poi)

    首先声明一下我这边的环境:idea+jdk1.8+springboot+maven 首先是导包.特别提醒:导包的时候可以从maven中选取最新的包,但两个包的版本要互相兼容,不然可能会因为某个包中需要 ...

  4. java 浏览器 excel导出excel_使用Java导出Excel表格并由浏览器直接下载——基于POI框架...

    非异步方法 /** * 使用Java导出Excel表格并由浏览器直接下载--基于POI框架 * * @param response * @return * @throws IllegalAccessE ...

  5. java导出Excel(POI模式 Ajax下载 Post传参) bootstrap table getVisibleColumns获取显示的列

    工具类 (正式使用) package com.qyj.utils;import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson. ...

  6. java导出excel设置行高列宽_使用POI生成Excel文件,可以自动调整excel列宽

    //autoSizeColumn()方法自动调整excel列宽 importjava.io.FileOutputStream; importorg.apache.poi.hssf.usermodel. ...

  7. Java导出excel文件以.xlsx后缀结尾,可设置部分单元格只读

    前言 最近在做一个小项目,有个模块的功能涉及到excel的导入导出,并且要求对导出的excel文件部分列和单元格设置为只读不可更改,在网上到处查找了一番资料,结合自己的想法,发现也并不难,这里整理记录 ...

  8. Java导出excel文件

    需求 将每个xmpp机房的在线/离线用户信息导出到Excel表格中(定时任务+网页按钮),并在网页上提供下载按钮进行下载. 效果预览 导出文件效果 点击下载弹出框效果 代码总览 /** ". ...

  9. JAVA导出EXCEL实现

    ##JAVA导出EXCEL实现的多种方式 java导出Excel的方法有多种,最为常用的方式就是使用第三方jar包,目前POI和JXL是最常用的二方包了,也推荐使用这两种. ###POI实现 POI这 ...

最新文章

  1. 终端多窗口管理旗舰------screen
  2. 【研讨课】超临界水气化制氢技术 2018-06-11
  3. 如何在手游中运用高逼格光影效果?
  4. .net开发人员应该知道(一)
  5. hadoop运行wordcount实例,hdfs简单操作
  6. 漫画:程序员真是太太太太太有趣了!
  7. Python 字符串(一)
  8. 5 questions
  9. const 并不能加快 C 代码的运行速度?
  10. 频遭黑客攻击的物联网,这里有妙招!
  11. mysql binlog 备份_Mysql数据库的增量备份与还原
  12. 数据库连接客户端 dbeaver 程序包以及使用说明
  13. python动态爱心代码_python如何动态绘制爱心 python动态绘制爱心代码示例
  14. python实训报告5000字_实训总结5000字
  15. php 会员 开源,会员组_POSCMS_PHP开源_迅睿CMS系统
  16. cadence allegro - PCB设计规范
  17. 拥有一套如何让客户购买的方法?
  18. 『杭电1290』献给杭电五十周年校庆的礼物
  19. javaweb实现的在线鲜花商城源码(电商购物系统)
  20. 最强悍的格斗系统 - Universe Fighting Engine安装教程

热门文章

  1. 微信小程序富文本组件wxParse
  2. 2004-12-01 终于把自己卖了,南京中兴
  3. 新理念 新举措 新发展——“十四五”时期经济社会发展的基本思路、主要目标与指标解读
  4. Win11删除文件时提示需要管理员权限怎么解决?
  5. 项目中中文大写金额的工具类
  6. 【网课平台】Day10.对接第三方:实现微信扫码登录
  7. 【动态规划】走楼梯问题
  8. ctfshow 摆烂杯web wp
  9. 一文掌握百度Apollo Udacity自动驾驶课程笔记
  10. VM快照磁盘不能打开问题