前端vue方法导出为xsml
首先引用xlsx
首先是导出方法
// 导出exportExcel() {// 格式化数据为二维数组this.exportData = this.formatTableData()// 设置表格数据const ws = XLSX.utils.aoa_to_sheet(this.exportData)// 新建一个工作簿const wb = XLSX.utils.book_new()// 设置表格样式,!cols为列宽const options = { '!cols': [] }for (const key in this.tableLabel) {options['!cols'].push({ wpx: this.tableLabel[key] })}ws['!cols'] = options['!cols']// 将工作表添加到工作簿XLSX.utils.book_append_sheet(wb, ws, 'Sheet1')// 输出工作表,由文件名决定的输出格式const fileNamePrefix = this.unitTestCoverObj.applicationNameconst time = getFullTime(null, true).replace(/-/g, '')const fileName = `${fileNamePrefix}${time}.xlsx`XLSX.writeFile(wb, fileName)this.$message({type: 'success',message: '导出成功'})}
格式化数据为二维数组
// 数据格式为二维数组formatTableData() {const data = []let tableRef = nulltableRef = this.$refs.unitTestCoverTabledata.push(...this.unitTestCoverData)if (!tableRef) {console.error('找不到表格组件ref')return []}const array = []array[0] = []this.tableLabel = {}for (const obj of tableRef.columns) {if (obj.type === 'index') {array[0].push('序号')this.tableLabel['index'] = obj.width} else {array[0].push(obj.label)this.tableLabel[obj.property] = obj.width || obj.minWidth || obj.realWidth || 100}}data.forEach((item, index) => {const subArray = []for (const head of Object.keys(this.tableLabel)) {if (head === 'index') {subArray.push(index + 1)continue}if (item[head] !== undefined) {if (head === 'coverage' || head === 'branchCoverage') {subArray.push(`${item[head]}%`)} else {subArray.push(`${item[head]}`)}} else {subArray.push('')}}array.push(subArray)})console.log(array)return array}
console到控制台看一眼是这样的:
第一组对象为xsml表格第一排
前端vue方法导出为xsml相关推荐
- vue 本地xlsx文件下载_前端vue下载导出excel和cvs文件
// 导出 exportData () { this.$confirm('确认导出XXXXXX?', { confirmButtonText: '导出', cancelButtonText: '取消' ...
- 前端vue实现导出功能:当后端给你返回的是文件流时,你要如何导出?
前言: 当有一个需求,让你导出文件.后台有时候会给你返回一个下载链接,做个按钮点一下发个请求就ok了 但如果给你返回文件流,我们要怎么对文件流处理呢? 解决方案: 话不多说.我们直接上代码:从axio ...
- java后端导出excel文件流,前端vue接收下载
1.后端excel导出工具类 主要依赖 <!--工具包--><dependency><groupId>cn.hutool</groupId><ar ...
- 前端vue js 高德地图实现雷达扫描加载,借鉴百度地图等方法,采用Canvas解决雷达背景透明度问题,解决Canvas动态指针扫描造成浏览器卡顿问题
前端vue js 高德地图实现雷达扫描加载,借鉴百度地图等方法,采用Canvas解决雷达背景透明度问题,解决Canvas动态指针扫描造成浏览器卡顿问题 经过3天的尝试,借鉴了好几个博客的思路,开发了一 ...
- vue前端html页面导出word文件,Vue-纯前端导出word文档
在项目中,我们可以借助后端返回文件流实现文件下载.如果前端有数据,也可以借助前端框架进行下载.本文将介绍如何在前端纯js实现word文档导出. 1. 组件介绍 要实现前端纯js导出word文档,我们需 ...
- vue中后端返回图片流,前端渲染方法
vue中后端返回图片流,前端渲染方法 前端登录经常用到图形验证码,后端接口返回的是图片数据流,如下图返回图片流这样 效果图如下: 首先封装接口api和uuid[就是一个随机数,防止重复] //获取图形 ...
- vue中导出json数据为excel表格并保存到本地
继我上次成功利用vue和elemen把excel的数据导入至前端vue,因为excel表中的数据有些必填项没有填写或者填写错误(比如写错字)所以就要将没有成功导入的数据导出成一份excel表并保存至本 ...
- 大前端-Vue源码分析
Vue源码解析-响应式原理 以下内容来自 拉勾教育大前端训练营 笔者在学习过程中对笔记进行的一个整理 心得体会 嘿嘿嘿~~~ 首先说说拉勾教育大前端训练营的课程视频吧,课程的质量是真的很好哦,并且已经 ...
- 常见的前端vue面试题
常见的前端vue面试题 1.请讲述下VUE的MVVM的理解? MVVM 是 Model-View-ViewModel的缩写,即将数据模型与数据表现层通过数据驱动进行分离,从而只需要关系数据模型的开发, ...
最新文章
- Android --- 新版本取色器吸管工具点击无效,没反应
- angularjs与server交互
- Future和Promise
- php 判断wap,php判断是否wap手机客户端的方法详解
- 【java学习之路】(java SE篇)002.java SE基础语法
- SQL CHECKSUM 关键字
- 线程并发安全导致内存溢出
- 网络攻防实验(连更)
- 立波 iphone3gs越狱教程:成功把iphone3gs手机升级成ios6.1.3系统,完美解决no service和耗电量大的问题...
- 简单谈谈XML DOM parser
- 数据挖掘专栏三-Python-消费者人群画像信用智能评分
- SHON WEBB:坚持做这四件事,会让你的自律达到新的高度
- socket c语言 AF_TIPC,socket编程 send() recv() sendto() recvfrom()
- android 程序中设置默认输入法
- 自定义UITableView索引动画,实现饿了么菜单效果
- EtherCAT主站SOEM函数详解---- ecx_readstate、ecx_writestate
- [渝粤教育] 四川大学 货币金融学 参考 资料
- Matlab-四杆桁架结构的有限元分析(有限元分析基础-曾攀)
- 8月12日 JPA复杂查询
- 移动端前台页面需要注意的几点
热门文章
- asp.net 使用UrlRewritingNet.UrlRewriter组件URL重写,伪静态详解
- 04 : mysql 基础命令操作,字符集
- 5. Java数组、排序和查找
- opencv 基于ORB特征点图像拼接
- (已解决)Android Studio 模拟器连接不上问题
- python/appium实现华为应用商城app界面上下滑动打开关闭通知栏等功能
- UVM中超时退出set_timeout函数
- oracle SQL以结尾函数,Oracle SQL 内置函数大全
- docker下载及vulhub靶场
- html数据线如何使用,揭秘数据线DIY详细步骤