vue纯前端导入excel,获取excel的表格数据渲染el-table

这篇具有很好参考价值的文章主要介绍了vue纯前端导入excel,获取excel的表格数据渲染el-table。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近有个需求,最开始列表数据是通过新增按钮一条条添加的,但是部分数据量可能上百条,客户自己手选会很慢,所以产品经理给了个需求要求可以通过上传excle文件进行导入。

经过网上查询及涉及自己项目,实现了此功能。

第一步:安装插件,我安的是0.16.0;原因是默认安装版本编译会有点问题,经过搜索后发现安装此版本后解决。

npm install xlsx@0.16.0 --save

第二步:vue页面中导入XLSX依赖

<script>
    import XLSX from 'xlsx'
</script>

第三步:页面展示

<el-upload ref="upload" action="/" :show-file-list="false" :on-change="importExcel" :auto-upload="false">
    <el-button class="d2-mt-10 d2-mb-10" size="mini" icon="el-icon-upload" @click="getCurrSiteColumn('oldSiteTableData')" type="primary">
      上传文件
    </el-button>
</el-upload>
<!-- 列表展示组件 -->
<DetailTable ref="xxx" :columnData="columnData" :tableData="tableData" title="xxx列表" :edit="editUsage"/>

第四步:核心代码js

 // 上传导入excle文件
 async importExcel (file) {
  const types = file.name.split('.')[1];
  // 定义上传文件类型
  const fileType = ['xlsx', 'xls', 'csv'].some(
    item => item === types
  );
  if (!fileType) {
    ElMessageBox.alert('文件格式错误!请重新选择');
    return;
  }
  // 执行处理excle文件内容
  await this.file2Xce(file).then(tab => {
    if (tab && tab.length > 0) {
      console.log('tab~~~', tab)
      this.xlscList = [];
      tab[0].sheet.forEach(item => {
        for (const it of this.oldSiteColumnData) {
          // 标题属性切换,只对符合条件的标题进行转换
          if (Object.keys(item).includes(it.label)) {
            item[it.prop] = item[it.label]
            delete item[it.label]
          }
        }
        this.xlscList.push(item)
      });
      console.log('this.xlscList~~~~~', this.xlscList);
      if (this.xlscList.length) {
        // 将转换后的数据返回给页面;此处的this[this.siteColumn],其实就是页面中的tableData
        this[this.column] = this.xlscList
        console.log('当前更新的已有列表信息', this[this.column]);
      }
    }
  });
},
// 获取 excel 文件内容
async file2Xce(file) {
  debugger
  return new Promise(function(resolve, reject) {
    const reader = new FileReader();
    reader.onload = function(e) {
      const data = e.target.result;
      this.wb = XLSX.read(data, {
        type: 'binary'
      });
      const result = [];
      this.wb.SheetNames.forEach(sheetName => {
        result.push({
          sheetName: sheetName,
          // 调用:sheet_to_json 方法,将文件内容解析成 json 格式
          sheet: XLSX.utils.sheet_to_json(this.wb.Sheets[sheetName])
        });
      });
      console.log('result~~~~~~~~', result);
      resolve(result);
    };
    debugger
    reader.readAsBinaryString(file.raw);
  });
}

上传的文件内容与拿到那数据内容如下:可以看到是正好是能对应上。

vue前端导入excel数据,vue,javascript,excle,vue.js,前端,excelvue前端导入excel数据,vue,javascript,excle,vue.js,前端,excel

 文章来源地址https://www.toymoban.com/news/detail-570462.html

到了这里,关于vue纯前端导入excel,获取excel的表格数据渲染el-table的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue通过Export2Excel.js进行导入excel,获取数据

      import Blob from \\\'./Excel/Blob\\\'   import Export2Excel from \\\'./Excel/Export2Excel.js\\\'  

    2023年04月14日
    浏览(28)
  • vue项目前端展示数学公式(在表格中渲染)

    现有需求为 将实验数据录入表格中,需要表格呈现物理公式,使用 Mathjax 在vue2中 进行呈现 1.安装 2.全局注册(main.js中)   私有组件   不想插入组件 在表格中如何使用  ps:渲染公式 需要先拿到对应的DOM元素 Mathjax语法总结 使用MathJax 3 渲染数学公式及在Vue中的使用 MathJax基本的使

    2024年01月23日
    浏览(34)
  • Vue前端表格导出Excel文件

    分享一个Vue前端导出Excel文件的方法。记录学习! 功能需求 :将表格的全部数据导出Excel格式的文件 前端 :Vue3+Element-Plus 这个导出方法全部为前端操作,后端只需要传入表格数据到前端即可(基础的多表查询,用的内连接) 2.1 核心方法 将这个导出方法单独封装出来,带一

    2023年04月24日
    浏览(73)
  • 前端vue自定义table 表格 表格组件 Excel组件

    前端组件化开发与Excel组件设计 一、前端开发的复杂性与组件化的必要性 随着技术的发展,前端开发的复杂度越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。

    2024年02月09日
    浏览(39)
  • vue 前端导出Excel表格(基础版 + 多级标题)纯前端导出

    先看效果   1、安装依赖 2、在项目的入口 main.js  引入 3、直接使用 4、完整代码直接复制即可 ------------------------------------分割-------------------------------------------- 1、还是npm下载依赖 2、要新建一个文件,Export2Excel.js 文件,我是从某个网址下载的,我给忘了,这里我直接复制过

    2024年02月12日
    浏览(42)
  • 【前端】vue3+ts+vite,el-table表格渲染记录重复情况

    给自己一个目标,然后坚持一段时间,总会有收获和感悟! 在使用vue的过程中,总会遇到一些有疑问的地方,总结就能够加深印象,下次再出现的时候也有个参考的地方。 Element UI 的 el-table 组件是一个强大的表格组件,提供了许多常见的属性来配置和定制表格的外观和行为

    2024年02月04日
    浏览(33)
  • Vue前端实现excel的导入、导出、打印功能

    导入导出依赖: npm install xlsx@0.16.9 npm install xlsx-style@0.8.13 --save 安装xlsx-style,运行报错 This relative module was not found: ./cptable in ./node_modules/xlsx-style@0.8.13@xlsx-style/dist/cpexcel.js 解决报错 在node_modulesxlsx-styledistcpexcel.js 807行 的 var cpt = require(\\\'./cpt\\\' + \\\'able\\\'); 改为: var cpt = cptable; 打印

    2023年04月08日
    浏览(34)
  • 【EXCEL】通过url获取网页表格数据

    目录 0.环境 1.背景 2.具体操作 windows + excel2021 之前我用python的flask框架的爬虫爬取过豆瓣网的电影信息,没想到excel可以直接通过url去获取网页表格内的信息,比如下图这是电影信息界面 即将上映电影 (douban.com) 通过excel操作,将电影信息爬取到表格内,如下图 1)点击菜单栏

    2024年02月16日
    浏览(26)
  • vue3前端excel导出;组件表格,自定义表格导出;Vue3 + xlsx + xlsx-style

    当画面有自定义的表格或者样式过于复杂的表格时,导出功能可以由前端实现 1. 使用的插件 : sheet.js-xlsx 文档地址:https://docs.sheetjs.com/ 中文地址:https://geekdaxue.co/read/SheetJS-docs-zh/README.md xlsx-style:https://www.npmjs.com/package/xlsx-style 2. 安装引用 安装插件-vue3 引用插件 3. 组件表格

    2024年04月26日
    浏览(33)
  • Vue3 exceljs库实现前端导入导出Excel

    最近在开发项目时需要批量导入和导出Excel数据,在实现这个需求时,我们既可以在前端完成数据解析和文件生成工作,也可以通过前端发起导入以及导出请求后,后端实现解析文件流解析文件内容以及生成文件并提供下载链接的功能。 相较于后端处理Excel数据而言,使用前

    2024年03月14日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包