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

vue+elementui表格导出

htmlToExcel.js

import FileSaver from 'file-saver'
import XLSX from 'xlsx'const htmlToExcel = {getExcel(dom, title = '默认标题') {var excelTitle = titlevar wb = XLSX.utils.table_to_book(document.querySelector(dom))/* 获取二进制字符串作为输出 */var wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' })try {FileSaver.saveAs(new Blob([wbout], { type: 'application/octet-stream' }),excelTitle + '.xlsx')} catch (e) {if (typeof console !== 'undefined') console.log(e, wbout)}return wbout}
}export default htmlToExcel
<template><div><!--导出按钮--><el-button type="primary" style="margin:20px;" @click="exportExcelSelect">导出Excel</el-button><el-inputstyle="width: 200px"placeholder="请输入搜索内容"v-model="inputSearch"><i slot="prefix" class="el-input__icon el-icon-search" @click="search()"></i></el-input><!--原始表格--><el-table:data="tableData"height="500px"fixed="left"@selection-change="handleSelectionChange"><el-table-columntype="selection"></el-table-column><el-table-columnprop="helpKeywordId"label="helpKeywordId"></el-table-column><el-table-columnprop="name"label="name"></el-table-column></el-table><!--预览弹窗表格--><el-dialog title="表格保存预览" width="70%" :visible.sync="selectWindow"><el-table :data="selectData" id="selectTable" height="380px"><el-table-columnprop="helpKeywordId"label="helpKeywordId"></el-table-column><el-table-columnprop="name"label="name"></el-table-column></el-table><div slot="footer" class="dialog-footer"><el-button type="primary" @click="exportExcel">确定保存</el-button></div></el-dialog></div>
</template><script>
import htmlToExcel from '@/utils/htmlToExcel'
import axios from 'axios'export default {name: 'ExcelPage',data() {return {inputSearch: '',// 表格数据tableData: null,// 表格中选中的数据selectData: [],selectWindow: false}},methods: {// 导出exportExcel() {htmlToExcel.getExcel('#selectTable', '导出的自定义标题')},// 显示预览弹窗exportExcelSelect() {if (this.selectData.length < 1) {this.$message.error('请选择要导出的内容!')return false}this.selectWindow = true},// 选中数据handleSelectionChange(val) {this.selectData = val},search() {}},created() {axios.get('http://localhost:9090/findAll').then((response) => {this.tableData = response.dataconsole.log(response.data)})}
}
</script><style>
</style>
http://www.lryc.cn/news/150022.html

相关文章:

  • 掌握前端利器:JavaScript页面渲染高阶方法解析与实战
  • 面试题——网络IO模型
  • 【JUC基础】JUC入门基础(二)
  • Git Bash 和 Git GUI中文汉化
  • 【Ubuntu】Ubuntu常用软件部署
  • Hadoop HA模式切换
  • 自然语言处理(四):全局向量的词嵌入(GloVe)
  • Flink中RPC实现原理简介
  • ELK安装、部署、调试(五)filebeat的安装与配置
  • Python数据分析案例30——中国高票房电影分析(爬虫获取数据及分析可视化全流程)
  • 科技资讯|苹果Vision Pro头显申请游戏手柄专利和商标
  • Compose学习 - remember、mutableStateOf的使用
  • 字符串哈希
  • 【python】【centos】使用python杀死进程后自身也会退出
  • 【ES系列】(一)简介与安装
  • opencv案例06-基于opencv图像匹配的消防通道障碍物检测与深度yolo检测的对比
  • 练习2:88. 合并两个有序数组
  • 【代码随想录day23】不同路径
  • SpringBoot 博客网站
  • 【分布式搜索引擎elasticsearch】
  • wireshark 流量抓包例题
  • 【Axure视频教程】表格编号函数
  • 大数据-玩转数据-Flink定时器
  • Linux 操作系统实战视频课 - GPIO 基础介绍
  • ChatGPT在医疗保健信息管理和电子病历中的应用前景如何?
  • 安防监控/视频存储/视频汇聚平台EasyCVR接入海康Ehome车载设备出现收流超时的原因排查
  • 【zookeeper】zookeeper监控指标查看
  • Flink 如何处理反压?
  • JAVA基础-JDBC
  • 嵌入式学习笔记(1)ARM的编程模式和7种工作模式