-
工具(file-saver、xlsx、script-loader)
npm install -S file-saver xlsx npm install -D script-loader
-
按钮
<el-upload class="upload-demo" action="" :on-change="handleChange" :on-exceed="handleExceed" :on-remove="handleRemove" :file-list="fileListUpload" :limit="limitUpload" //limitUpload = 1限制只能上传1个文件 accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel" //accept为默认打开的可上传的文件格式 :auto-upload="false"> <el-button size="small" type="primary">点击上传</el-button> <div slot="tip" class="el-upload__tip">只 能 上 传 xlsx / xls 文 件</div> </el-upload>
-
方法
handleChange(file, fileList) { this.fileTemp = file.raw; if (this.fileTemp) { if ( this.fileTemp.type == "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" || this.fileTemp.type == "application/vnd.ms-excel" ) { this.importfxx(this.fileTemp); } else { this.$message({ type: "warning", message: "附件格式错误,请删除后重新上传!", }); } } else { this.$message({ type: "warning", message: "请上传附件!", }); } }, handleRemove(file, fileList) { this.fileTemp = null; }, importfxx(obj) { let _this = this; // 通过DOM取文件数据 this.file = obj; var rABS = false; //是否将文件读取为二进制字符串 var f = this.file; var reader = new FileReader(); //if (!FileReader.prototype.readAsBinaryString) { 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]]); console.log(outdata);//接收的数据 }; reader.readAsArrayBuffer(f); }; if (rABS) { reader.readAsArrayBuffer(f); } else { reader.readAsBinaryString(f); } },
Vue+Element导入Excel
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- https://www.jqhtml.com/40007.html 1.1 业务场景 由前台导入Excel表格,获...
- 业务场景 由前台导入Excel表格,获取批量数据。 根据一个数组导出Excel表格。 引入工具库 npm inst...
- 1.导入功能实现 下载js-xlsx到dist复制出xlsx.full.min.js引入到页面中 然后通过File...
- 首先安装依赖:file-saver,xlsx和script-loader 然后引入两个js文件:Blob.js和E...
- 1.首先,先引入三个依赖包,这个是必不可少的 **最好使用cnpm下载,因为我之前试了好久,不使用cnpm,根...