首页 > 其他分享 >Vue中使用xlsx库解析Excel

Vue中使用xlsx库解析Excel

时间:2024-09-27 10:23:55浏览次数:1  
标签:xlsx Vue const log Excel let key console data

<template>
 <div>
  <el-upload
   ref="upload"
   class="upload-demo"
   action="#"
   accept="xlsx,xls"
   multiple
   :limit="1"
   :auto-upload="false"
   :withCredentials="false"
   :on-change="loadFile"
  >
   <el-button slot="trigger" size="mini" type="success" plain round>选择文件</el-button>
   <br />
   <div slot="tip" class="el-upload__tip">【注意】只能上传xls/xlsx文件</div>
  </el-upload>
 </div>
</template>

<script>
import XLSX from 'xlsx'
export default {
 name: 'GetExcelContent',
 data() {
  return {
   tableData: []
  }
 },
 methods: {
  handle_download(row) {
   return this.$message.success(`下载版本号为 ${row.version} 的文件!`)
  },
  loadFile(file, fileList) {
   let upload_file = fileList[0].raw
   const reader = new FileReader()
   reader.readAsBinaryString(upload_file)
   reader.onload = (ev) => {
    try {
     const f = ev.target.result
     const workbook = XLSX.read(f, { type: 'binary', codepage: 936 }) // codepage 解决中文乱码问题 
     const wsname = workbook.SheetNames[0]
     //  console.log(wsname) // 工作簿名称
     const ws = XLSX.utils.sheet_to_json(workbook.Sheets[wsname], { header: 1, defval: '#' })
     //至此,将拿到excel工作簿中的数据,下面就可以自己操作了
     //........
     let excelData = ws
let key_list = excelData[0] console.log('原始数据:', excelData) let object_data = {} this.excelData.forEach((item, key) => { if (key != 0) { item.forEach((element, index) => { object_data[key_list[index]] = item[index] }) this.tableData.push(object_data) object_data = {} } }) console.log('格式化后的数据:', this.tableData) } catch (e) { console.log(e) return false } } }, }, } </script> <style lang="scss" scoped></style>

 

标签:xlsx,Vue,const,log,Excel,let,key,console,data
From: https://www.cnblogs.com/lyt520/p/18435178

相关文章

  • 提高python读写excel单元格的效率
    目录1、批量写入一列与逐个写入一列的效率对比2、批量读取一行3、批量读取一列4、批量读取二维表格5、批量写入二维表格使用pywin32读写excel,如果逐个单元格访问,会明显感觉到执行效率很低。因为pywin32其实是python重新封装了一下com接口,交互效率本身就低。试了一......
  • vue父子组件的生命周期加载顺序
    vue父子组件的生命周期加载顺序官网里vue组件的生命周期钩子汇总列举如下:生命周期单个vue组件的生命周期执行顺序已经非常熟悉了。但是,如果有嵌套组件,父子组件的生命周期的执行顺序是什么呢?嵌套组件又分为2种情况:一种是在template直接引入(大部分场景),另一种是element......
  • [附源码]在线音乐系统+SpringBoot+Vue前后端分离
    今天带来一款优秀的项目:在线音乐系统源码 。系统采用的流行的前后端分离结构,内含功能包括"管理后台",“用户端”,“评论系统”,“歌手,歌曲管理”,“用户系统”,"统计"等功能。如果您有任何问题,也请联系小编,小编是经验丰富的程序员!一.系统演示视频 https://githubs.xy......
  • springboot+vue青年大学习数据分析系统的设计与实现5ek29
    目录功能和技术介绍系统实现截图开发核心技术介绍:使用说明开发步骤编译运行需求分析系统设计软件测试核心代码部分展示详细视频演示源码获取功能和技术介绍本项目包含程序源码和MySql脚本和文档,idea开发,支持Eclipse。对项目进行分阶段,分模块的开发,对项目进行黑盒......
  • 基于Node.js+vue基于java的校园疫情管理系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景近年来,全球范围内频繁爆发的疫情事件对教育领域产生了深远影响,特别是在校园环境中,如何有效防控疫情、保障师生健康安全成为了亟待解决的问题。传统的校园管......
  • 基于Node.js+vue基于springboot的模拟面试平台7tch0(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和互联网应用的广泛普及,传统的招聘模式正逐步向数字化、智能化转型。面试作为招聘流程中的关键环节,其效率与效果直接影响到企业的人......
  • 基于Node.js+vue在线考试系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着互联网技术的迅猛发展和普及,教育领域正经历着深刻的变革。传统考试模式受限于时间、地点和资源的限制,已难以满足现代教育的多元化需求。在线考试系统作......
  • Python办公自动化之Excel
    在日常工作中,Excel是很多办公人士必不可少的工具,而随着工作流程的复杂化,手动操作Excel的效率已无法满足高效办公的需求。那么,如何通过Python来实现Excel的自动化操作,帮助我们节省时间,提高效率呢?Python如何高效处理Excel文件?通过Python,我们可以快速地读取、修改和......
  • vue 的v-bind和v-model
    1.vue中存在很多绑定的操作,常见的操作为:2.这次主要学习v-bind,v-model.v-bind,用来绑定标签,v-model用来绑定表单.使用message来绑定了一个图片作为效果图.同时使用url来绑定input的txt输入,并且将url和超链接的href链接达到可以跳转网页的效果点击说走就走:修改链接,......
  • 前端使用webpack本地实现编译时出现错误[cached] 1 asset ERROR in main Module not
    一:概述Webpack是一个现代JavaScript应用程序的静态模块打包工具。它主要用于将JavaScript代码、CSS、图片等资源模块化管理,并最终打包成一个或多个文件,方便在浏览器中使用。以下是对Webpack的详细介绍:主要特点模块化:Webpack支持ES6模块、CommonJS和AMD模块,能够将各种......