导入导出
Posted joer717
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了导入导出相关的知识,希望对你有一定的参考价值。
1.安装 npm install -S file-saver xlsx 和 npm install -D script-loader
2.在项目src目录下新建一个文件夹vendor(名字随意),在此文件夹下放置两个文件Blob.js和Export2Excal.js(下载地址:http://files.cnblogs.com/files/luyuefeng/vendor.rar)
导出文件
exportExcel() //兼容ie10哦! require.ensure([], () => const export_json_to_excel = require(‘../../vendor/Export2Excel‘); //引入文件 const tHeader = [‘姓名‘, ‘工号‘, ‘部门‘]; //将对应的属性名转换成中文 //const tHeader = []; const filterVal = [‘name‘, ‘jobNumber‘, ‘department‘];//table表格中对应的属性名 const list = exportData; //想要导出的数据 const data = this.formatJson(filterVal, list); export_json_to_excel(tHeader, data, ‘列表excel‘); ) ,
formatJson(filterVal, jsonData) return jsonData.map(v => filterVal.map(j => v[j]));
3.导入文件
<input id="upload" type="file" @change="importfxx()" accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" />
importfxx(obj) let _this = this; let inputDOM = this.$refs.inputer; // 通过DOM取文件数据 this.file = event.currentTarget.files[0]; var rABS = false; //是否将文件读取为二进制字符串 var f = this.file; var reader = new FileReader(); FileReader.prototype.readAsBinaryString = function(f) var binary = ""; var rABS = false; //是否将文件读取为二进制字符串 var pt = this; var wb; //读取完成的数据 var outdata; var reader = new FileReader(); reader.onload = function(e) var bytes = new Uint8Array(reader.result); var length = bytes.byteLength; for(var i = 0; i < length; i++) binary += String.fromCharCode(bytes[i]); var XLSX = require(‘xlsx‘); if(rABS) wb = XLSX.read(btoa(fixdata(binary)), //手动转化 type: ‘base64‘ ); else wb = XLSX.read(binary, type: ‘binary‘ ); outdata = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]); let importList = _this.dateTransition(outdata); reader.readAsArrayBuffer(f); if(rABS) reader.readAsArrayBuffer(f); else reader.readAsBinaryString(f); ;
// 将对应的中文key转化为自己想要的英文key dateTransition(outdata) let list = []; var obj = ; for(var i = 0; i < outdata.length; i++) obj = ; for(var key in outdata[i]) if(key == ‘工号‘) obj[‘jobNumber‘] = outdata[i][key]; else if(key == ‘姓名‘) obj[‘name‘] = outdata[i][key]; else if(key == ‘部门‘) obj[‘department‘] = outdata[i][key]; list.push(obj); return list; ;
如果有报错要改下路径
require(‘./Blob.js‘);
要在main中引入这两个js
在别名设置的里面设置两js的路径
以上是关于导入导出的主要内容,如果未能解决你的问题,请参考以下文章