当前位置: 首页 > news >正文

【vue】导出excel

文章目录

  • vue导出excel表格
    • 方式一:前端导出
    • 方式二:后端导出

vue导出excel表格

前端导出excel:就用 vue+XLSX(npm 包)
后端导出excel:就用 vue+POI(maven 包)

  • 对比
    前端导出excel 相对来说简单一点,XLSX是前端 npm 包,但是如果数据量大的话,会卡顿,处理时间慢;当数据量多的时候 使用后端导出会好一点
    后端导出excel 相对来说麻烦一点,但是时间短、速度快;具体操作都放在后端,也节省了前端的操作。用户效果好。

方式一:前端导出

  1. 安装
    npm install vue-json-excel -S

  2. main.js中引入

        import JsonExcel from 'vue-json-excel'Vue.component('downloadExcel', JsonExcel)
    
  3. 在代码中使用

         <template>
    



导出


```

  1. 修改配置参数
        title: "xx公司表格",json_fields: {"排查日期":'date',"整改隐患内容":'details',"整改措施":'measure',"整改时限":'timeLimit',"应急措施和预案":'plan',"整改责任人":'personInCharge',"填表人":'preparer',"整改资金":'fund',"整改完成情况":'complete',"备注":'remark',},DetailsForm: [{date: "2022-3-10",details: "卸油区过路灯损坏",measure: "更换灯泡",timeLimit: "2022-3-21",plan: "先使用充电灯代替,贴好安全提醒告示",personInCharge: "王xx",preparer: "王xx",fund: "20元",complete: "已完成整改",remark: "重新更换了灯泡",},],

    方式二:后端导出

    后端写好的 excel就直接write到 response里面
    1.按钮事件
<el-button size="small" type="primary" @click="exportAllExcel">导出全部</el-button>

2.网络请求封装
// 导出全部

export function exportExcelForMatchUser(data) {return fetch({url: '/xfx/matchUser/web/exportExcelForMatchUser',method: 'post',timeout: '120000',responseType: 'blob',data});
}

3.js方法:导出全部exportAllExcel

      // 导出 所有exportAllExcel() {this.$confirm("是否确认导出全部参赛人员数据?", "警告", {confirmButtonText: "确定",cancelButtonText: "取消",type: "warning",}).then(response => {exportExcelForMatchUser().then(response => {const data = "参赛人员web.xlsx";console.log('1111111111111111111111111', JSON.stringify(response))let blob = new Blob([response.data], {type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8"});console.log('333333333333333333333333', JSON.stringify(blob))// for IEif (window.navigator && window.navigator.msSaveOrOpenBlob) {window.navigator.msSaveOrOpenBlob(blob, data);} else {console.log('chrome go here ')let downloadElement = document.createElement('a');let href = window.URL.createObjectURL(blob); // 创建下载的链接downloadElement.href = href;downloadElement.download = data; // 下载后文件名document.body.appendChild(downloadElement);downloadElement.click(); // 点击下载document.body.removeChild(downloadElement); // 下载完成移除元素window.URL.revokeObjectURL(href); // 释放掉blob对象}}).catch(err => {console.log(err)this.loading = false;this.$message.warning("对不起,下载失败");});})},

参考博客

http://www.dtcms.com/a/490187.html

相关文章:

  • WiFi模块远程连接APP:wifi模块的应用
  • 关闭电脑的“快速启动”功能
  • 【MongoDB 基本语法】数据库和集合的基本操作--探秘 MongoDB
  • 提示词管理器设计:从需求到用户体验的高效落地逻辑
  • idea 网站开发无远低代码开发平台
  • FFmpeg 基本API avio_open函数内部调用流程分析
  • 27.Redisson基本使用和可重入性
  • 凡客做网站阎良网站建设公司
  • Uniapp微信小程序开发:全局变量的使用
  • 【优先队列介绍】
  • 初识HTNL
  • 笔试强训(四)
  • 【深入浅出PyTorch】--7.2.PyTorch可视化2
  • 商城系统-自动化测试报告
  • 递归-面试题08.06.汉诺塔问题-力扣(LeetCode)
  • 珠海网站建设 骏域网站域名 空间 网站制作
  • AI视频生成工具完全指南:从Sora到开源替代方案全解析
  • 多模态大模型研究每日简报【2025-10-16】
  • Azure Workbooks 权限配置完整指南
  • 公司做网站需要哪些资料百度蜘蛛抓取网站模块
  • 后端定义两个实体参数,前端如何传值
  • **点云处理:发散创新,探索前沿技术**随着科技的飞速发展,点云处理技术在计算机视觉、自动驾驶、虚拟现实等领域的应用愈发广
  • HarmonyOS分布式硬件共享:调用手机摄像头的手表应用
  • 网站开发英语英语山东教育网站开发公司
  • 手表东莞网站建设技术支持网站搭建公司加盟
  • DevTunnel:免费安全穿透内网网页
  • el-input 输入框宽度自适应宽度
  • [嵌入式系统-126]:CUDA运行在CPU上,还是运行在GPU之上?
  • 启动模板创建AWS EC2 Auto Scaling指南
  • 【LeetCode_160】相交链表