vue使用file-saver本地文件导出功能
1:安装xlsx和file-saver
npm install file-saver xlsx--save2:创建localExports.js文件 3:直接上代码
import XLSX from 'xlsx'; const FileSaver = require('file-saver'); import { getRandomNum } from '@/utils'; // 本地导出表格/** * 导出Excel文件 * @param {*} elementNametable组件id名称 * @param {*} fileName文件名 * @description使用说明 *import { exportsXlsx } from '@/utils/localExports'; *exportsXlsx('idName', '文件名称'); */ export function exportsXlsx(elementName, fileName) {const time = new Date().getTime(); const random = getRandomNum(100, 1000); const wb = XLSX.utils.table_to_book(clearHead(elementName), { raw: true }); const wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' }); FileSaver.saveAs(new Blob([wbout], { type: 'application/octet-stream' }), `${fileName}${time}-${random}.xlsx`); }function clearHead(elementName) {const tableDom = document.querySelector('#' + elementName).cloneNode(true); const tableHeader = tableDom.querySelector('.el-table__header-wrapper'); const tableBody = tableDom.querySelector('.el-table__body'); tableHeader.childNodes[0].append(tableBody.childNodes[1]); const headerDom = tableHeader.childNodes[0].querySelectorAll('th'); // 移除左侧checkbox的节点if (headerDom[0].querySelectorAll('.el-checkbox')) {headerDom[0].remove(); }for (const key in headerDom) {if (headerDom[key].innerText === '操作') {headerDom[key].remove(); }}// 清理掉checkbox 和操作的buttonconst tableList = tableHeader.childNodes[0].childNodes[2].querySelectorAll('td'); for (let key = 0; key < tableList.length; key++) {if (tableList[key].querySelectorAll('.el-checkbox').length > 0 || tableList[key].querySelectorAll('.el-button').length > 0) {tableList[key].remove(); }}return tableHeader; }
4:使用方式
import { exportsXlsx } from '@/utils/localExports'; methods:{onSearch() {exportsXlsx('good', '模拟数据'); },}
5:good为table组件的id,getRamdomNum方法如下
// 生成随机数export function getRandomNum(Min, Max) {var Range = Max - Min; var Rand = Math.random(); return (Min + Math.round(Rand * Range)); }
【vue使用file-saver本地文件导出功能】到此这篇关于vue使用file-saver本地文件导出的文章就介绍到这了,更多相关vue file-saver本地文件导出内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- vue中el-table实现自动吸顶效果(支持fixed)
- 如何使用|如何使用 Milvus 向量数据库实现实时查询
- 存储用户密码应该使用什么加密算法()
- peewee 查询结果使用字典数据类型
- swagger的作用和配置使用
- Vue中使用axios调用后端接口的坑及解决
- SpringBoot缓存Ehcache的使用详解
- Vue中用JSON实现刷新界面不影响倒计时
- vue如何使用模拟的json数据查看效果
- vue|vue ref如何获取子组件属性值