热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vue+springBoot实现前端页面导出Excel文件功能

vue:0初始化第三方插件在编辑器里执行npminstalljs-file-download例如:我用的是webstorm直接回车安装即可,没有err就是安装成功了1在页面上先添加

vue:


0 初始化第三方插件

在编辑器里执行

npm install js-file-download

例如:我用的是webstorm

image

直接回车安装即可,没有err就是安装成功了


1 在页面上先添加导出按钮

导出数据

由于本人对vue不懂,所以就不详细介绍了,主要是@click这个属性是监控点击事件,当点击导出数据按钮时,触发exportData函数,这是个自己定义的函数,里边自己写逻辑代码。


2 在页面上定义方法

exportData(){
let params = {
//医院code
hosCode: this.companyCode,
//当前页
pageNum: this.currentPage,
//每页的数量
pageSize: this.pageSize,
//监测点类型
monitorPlaceType: this.monitorPlaceType,
//监测点名称
monitorPlaceName: this.monitorPlaceName,
//日期选择
abnoDate: this.abnoDate
}
request.exportBlob('/admin/Statistics/excelData', params, {responseType: 'arraybuffer'}).then(res => {
fileDownload(res.data, '统计查询.xls')
})
}

如果你也不会vue,也不知道写在哪个地方,去其他页面看看,他们自定义的方法都写在哪就好了

request.exportBlob其实是我们前端对某些用法的封装,等会看下代码就知道了。


3 引入js

在vue页面中,引入具体方法的js文件

import fileDownload from 'js-file-download'

import request from '@/utils/request'


4 编写request.js文件

import axios from 'axios'
// 携带请求头导出文件
const exportBlob = (url, params, cOnfig= {}) => axios.post(baseURL+url, params, {
...config,
responseType: 'blob'
})
export default {
exportBlob
}

后台


1 controller

@PostMapping("/excelData")
@OperationLog(name = "统计查询-导出功能", type = OperationLogType.INFO)
@ApiOperation(value = "统计查询-导出数据",notes = "导出记录")
public void excelData(@RequestBody StatistiCsondition statistiCsondition,HttpServletResponse response){
thmsStatService.excelData(statistiCsondition,response);
}

2 service

void excelData(StatistiCsondition statistiCsondition,HttpServletResponse response);

3 impl

List res = thmsStatMapper.sel(wrapper);

这是我系统自己的方法,主要是提供数据用的,

你可以List> res = 获取数据的方法;

List res = thmsStatMapper.sel(wrapper);

try{

//创建excel文件流

HSSFWorkbook wb = new HSSFWorkbook();

HSSFSheet sheet = wb.createSheet("记录");

HSSFRow row = null;

int columnIndex = 0;

row = sheet.createRow(0);

row.setHeight((short) (22.50 * 20));//设置行高

row.createCell(columnIndex).setCellValue("序号");

row.createCell(++columnIndex).setCellValue("规则类型");

row.createCell(++columnIndex).setCellValue("监测点名称");

row.createCell(++columnIndex).setCellValue("专业组");

row.createCell(++columnIndex).setCellValue("类型");

row.createCell(++columnIndex).setCellValue("编号");

row.createCell(++columnIndex).setCellValue("温度规则");

for (int i = 0; i
row = sheet.createRow(i + 1);

ThmsStatisticsDate entity = res.get(i);

columnIndex = 0;

row.createCell(columnIndex).setCellValue(i + 1);

if(null != entity.getRuleType()){

row.createCell(++columnIndex).setCellValue(entity.getRuleType());

}else{

row.createCell(++columnIndex).setCellValue(0);

}

if(null != entity.getMonitorPlaceName() && !"".equalsIgnoreCase(entity.getMonitorPlaceName())){

row.createCell(++columnIndex).setCellValue(entity.getMonitorPlaceName());

}else{

row.createCell(++columnIndex).setCellValue("空");

}

if(null != entity.getMajorGroup() && !"".equalsIgnoreCase(entity.getMajorGroup())){

row.createCell(++columnIndex).setCellValue(entity.getMajorGroup());

}else{

row.createCell(++columnIndex).setCellValue("空");

}

if(null != entity.getType() && !"".equalsIgnoreCase(entity.getType())){

row.createCell(++columnIndex).setCellValue(entity.getType());

}else{

row.createCell(++columnIndex).setCellValue("空");

}

if(null != entity.getNumber()){

row.createCell(++columnIndex).setCellValue(entity.getNumber().toString());

}else{

row.createCell(++columnIndex).setCellValue(0);

}

if(null != entity.getTemperatureRule() && !"".equalsIgnoreCase(entity.getTemperatureRule().toString())){

row.createCell(++columnIndex).setCellValue(entity.getTemperatureRule());

}else{

row.createCell(++columnIndex).setCellValue("空");

}

}

sheet.setDefaultRowHeight((short) (16.5 * 20));

//列宽自适应

for (int i = 0; i <= 11; i++) {

sheet.autoSizeColumn(i);

}

String title= "tongji";

response.setHeader("Content-disposition", "attachment;fileName=" + title + ".xls");

response.setContentType("application/octet-stream;charset=utf-8");

OutputStream ouputStream = response.getOutputStream();

wb.write(ouputStream);

ouputStream.flush();

ouputStream.close();

}catch (Exception e){

log.info("程序报错" + e);

}



推荐阅读
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
  • npmrunbuild后dist文件夹下面直接浏览器打开index.html,css和js的路径都不正确。放到跟目录下就正常了,iis上同样只能在根目录下。我项目的目录如下: ... [详细]
  • React 小白初入门
    推荐学习:React官方文档:https:react.docschina.orgReact菜鸟教程:https:www.runoob.c ... [详细]
  • RN即ReactNative基于React框架针对移动端的跨平台框架,在学习RN前建议最好熟悉下html,css,js,当然如果比较急,那就直接上手吧,毕竟用学习前面基础的时间,R ... [详细]
  • 前言:原本纠结于Web模板,选了Handlebars。后来发现页面都是弱逻辑的,不支持复杂逻辑表达式。几乎要放弃之际,想起了Javascript中ev ... [详细]
  • ReactJSUIAnt设计空组件原文:https://w ... [详细]
  • npminstall-Dbabelcorebabelpreset-envbabelplugin-transform-runtimebabelpolyfillbabel-loader ... [详细]
  • 前言:原本纠结于Web 模板,选了Handlebars。后来发现页面都是弱逻辑的,不支持复杂逻辑表达式。几乎要放弃之际,想起了Javascript中eval函数。虽然eval函 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • springboot项目引入jquery浏览器报404错误的解决办法
    本文介绍了在springboot项目中引入jquery时,可能会出现浏览器报404错误的问题,并提供了解决办法。问题可能是由于将jquery.js文件复制粘贴到错误的目录导致的,解决办法是将文件复制粘贴到正确的目录下。如果问题仍然存在,可能是其他原因导致的。 ... [详细]
  • 本文总结了使用不同方式生成 Dataframe 的方法,包括通过CSV文件、Excel文件、python dictionary、List of tuples和List of dictionary。同时介绍了一些注意事项,如使用绝对路径引入文件和安装xlrd包来读取Excel文件。 ... [详细]
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
  • 先下载nodejs针对windows安装安装就行。自定义安装在对应的文件夹就行安装完之后需要在电脑的环境变量里面添加两个路径通过cmd可以查看自己node的版本号最后通过运行npm ... [详细]
author-avatar
X婷婷Z
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有