电子网站有哪些,短视频代运营,安徽做网站的公司有哪些,游戏开服网第028个 查看专栏目录: VUE ------ element UI 专栏目标
在vue和element UI联合技术栈的操控下#xff0c;本专栏提供行之有效的源代码示例和信息点介绍#xff0c;做到灵活运用。 #xff08;1#xff09;提供vue2的一些基本操作#xff1a;安装、引用#xff0c;模板使… 第028个 查看专栏目录: VUE ------ element UI 专栏目标
在vue和element UI联合技术栈的操控下本专栏提供行之有效的源代码示例和信息点介绍做到灵活运用。 1提供vue2的一些基本操作安装、引用模板使用computedwatch生命周期(beforeCreatecreated,beforeMountmounted, beforeUpdateupdated, beforeDestroydestroyedactivateddeactivatederrorCapturedcomponents)、 $root , $parent , $children , $slots , $refs , props, $emit , eventbus ,provide / inject, Vue.observable, $listeners, $attrs, $nextTick , v-for, v-if, v-else,v-else-ifv-onv-prev-cloakv-oncev-model v-html, v-text, keep-aliveslot-scope filters, v-bind.stop, .native, directivesmixinrender国际化Vue Router等 2提供element UI的经典操作安装引用国际化el-rowel-colel-buttonel-linkel-radioel-checkbox el-inputel-select, el-cascader, el-input-number, el-switch,el-slider, el-time-picker, el-date-picker, el-upload, el-rate, el-color-picker, el-transfer, el-form, el-table, el-tree, el-pagination,el-badge,el-avatar,el-skeleton, el-empty, el-descriptions, el-result, el-statistic, el-alert, v-loading, $message, $alert, $prompt, $confirm , $notify, el-breadcrumb, el-page-header,el-tabs ,el-dropdown,el-steps,el-dialog, el-tooltip, el-popover, el-popconfirm, el-card, el-carousel, el-collapse, el-timeline, el-divider, el-calendar, el-image, el-backtopv-infinite-scroll el-drawer等 本文章目录 专栏目标需求背景示例效果示例源代码共105行安装引用依赖API参考 需求背景
在vue的项目开发中我们会遇到加载excel或者csv等情形这个示例展示了这个需求。上传一个excel文件通过解析生成数组然后再列表中将内容展示出来。
示例效果 示例源代码共105行
/*
* Author: 大剑师兰特xiaozhuanlan还是大剑师兰特CSDN
* 此源代码版权归大剑师兰特所有可供学习或商业项目中借鉴未经授权不得重复地发表到博客、论坛问答git等公共空间或网站中。
* Email: 2909222303qq.com
* weixin: gis-dajianshi
* First published in CSDN
* First published time: 2022-09-07
*/templatediv classcontainerdiv classtoph3vue上传解析excel文件输出列表内容 /h3div classauthor大剑师兰特, 还是大剑师兰特gis-dajianshi/div/divh4el-upload refupload action/ :show-file-listfalse :on-changeimportExcel :auto-uploadfalseel-button slottrigger iconel-icon-upload sizesmall typesuccess上传文件/el-button/el-upload/h4div stylewidth: 80%; margin:10px autoel-table :dataxlsxData stylewidth: 100%el-table-column propname label姓名 width180/el-table-columnel-table-column propclass label班级 width180/el-table-columnel-table-column propscore label成绩/el-table-columnel-table-column proplevel label等级/el-table-column/el-table/div/div
/templatescriptimport * as XLSX from xlsxexport default {data() {return {wb: null,xlsxData: [],}},methods: {importExcel(file) {// let filefile file.files[0] // 使用传统的input方法需要加上这一步 const types file.name.split(.)[1]const fileType [xlsx, xlc, xlm, xls, xlt, xlw, csv].some(item item types)if (!fileType) {alert(格式错误请重新选择)return}this.fileExchange(file).then(tabJson {if (tabJson tabJson.length 0) {this.xlsxData tabJson[0].sheetconsole.log(this.xlsxData)// xlsxJson就是解析出来的json数据,数据格式如下 // [ // { // sheetName: sheet1 // sheet: sheetData // } // ] }})},fileExchange(file) {return new Promise(function(resolve, reject) {const reader new FileReader()reader.onload function(e) {const data e.target.resultthis.wb XLSX.read(data, {type: binary})const result []this.wb.SheetNames.forEach((sheetName) {result.push({sheetName: sheetName,sheet: XLSX.utils.sheet_to_json(this.wb.Sheets[sheetName])})})resolve(result)}reader.readAsBinaryString(file.raw)// reader.readAsBinaryString(file) // 传统input方法 })}},}
/script
style scoped.container {width: 1000px;height: 580px;margin: 50px auto;border: 1px solid green;}.top {margin: 0 auto 30px;padding: 10px 0;background: #23B486;color: #fff;}/style
安装引用依赖
// 安装插件
npm install xlsx --save
// 在vue中导入XLSX
import * as XLSX from xlsx API参考
https://www.npmjs.com/package/xlsx