使用element实现导入execl表格的功能

这篇具有很好参考价值的文章主要介绍了使用element实现导入execl表格的功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

现如今后台管理项目中越来越人性化,文件上传,文件的下载(主页中都有)表格的导入和导出。

今天给大家搞个前后端联调的导入表格的功能,废话不多说,咱直接上代码吧!!!!

代码后面有对代码的解析,方便大家根据自己的需求进行行对的调整。

   <template slot="menuLeft" >
         <el-button
              type="warning"
              icon="el-icon-folder-add">
          <el-upload
            :on-change="fileonChange"
            style="float: right;"
            :auto-upload="false"
            :show-file-list="false"
             accept=".xls, .xlsx"
             ref="upload"
            :multiple="true">
            导入
          </el-upload>
          </el-button>
       </template>

2。通过第三方插件

1.npm install xlsx  通过这个命令进行按照。

2.const XLSX = require('xlsx');   在需要的页面进行引入

 //初始化导入
       initalizeImport(file){
         let that = this;
         if (!file) {
             //如果没有文件
             return false;
         } else if (!/.(xls|xlsx)$/.test(file.name.toLowerCase())) {
             this.$message.error("上传格式不正确,请上传xls或者xlsx格式");
             return false;
         }
         const fileReader = new FileReader();
         fileReader.onload = async (ev) => {
             try {
                 const data = ev.target.result;
                 const workbook = XLSX.read(data, {
                     type: "binary",
                 });

                 const wsname = workbook.SheetNames[0]; //导入excel的第一张表
                 // 导入的信息
                 const ws = XLSX.utils.sheet_to_json(workbook.Sheets[wsname]); //生成json表格内容
                 let params = [];
                 //如果一行表头,则i从0开始,如果是两行则从1开始以此类推
                 for (var i = 0; i < ws.length; i++) {
                    let one = ws[i]["发件人"] || "默认值";  // 如果表格中该字段为空,则设置默认值
                    let two= ws[i]["联系电话"] || "17343824899"; // 如果表格中该字段为空,则设置默认值
                    let three = ws[i]["电子邮箱"] || "2982543375@qq.com"; // 如果表格中该字段为空,则设置默认值
                    let four = ws[i]["收货地址"] || "佳木斯"; // 如果表格中该字段为空,则设置默认值
                    let five= ws[i]["发货地址"] || "	中国"; // 如果表格中该字段为空,则设置默认值
                    let six= ws[i]["收件人"] || "中国"; // 如果表格中该字段为空,则设置默认值
                    let serve= ws[i]["商铺名称"] || "自营";// 如果表格中该字段为空,则设置默认值
                    let eight= ws[i]["中间商"] || "校长"; // 如果表格中该字段为空,则设置默认值
                    let nine= ws[i]["客服"] || "WC"; // 如果表格中该字段为空,则设置默认值
                    let ten= ws[i]["备注"] || "结束";  // 如果表格中该字段为空,则设置默认值
                     let sheetData = {
                         // 键名为绑定 el 表格的关键字,值则是 ws[i][对应表头名]
                         one: one,
                         two: two,
                         three: three,
                         four: four,
                         five:five,
                         six:six,
                         serve:serve,
                         eight:eight,
                         nine: nine,
                         ten:ten
                     };

                     params.push(sheetData)
                 }

                 const yitang = workbook.SheetNames[1];
                 const yt = XLSX.utils.sheet_to_json(workbook.Sheets[yitang]);
                let one = yt[i]["发件人"] || "默认值";  // 如果表格中该字段为空,则设置默认值
                    let two= yt[i]["联系电话"] || "17343824899"; // 如果表格中该字段为空,则设置默认值
                    let three = yt[i]["电子邮箱"] || "2982543375@qq.com"; // 如果表格中该字段为空,则设置默认值
                    let four = yt[i]["收货地址"] || "佳木斯"; // 如果表格中该字段为空,则设置默认值
                    let five= yt[i]["发货地址"] || "	中国"; // 如果表格中该字段为空,则设置默认值
                    let six= yt[i]["收件人"] || "中国"; // 如果表格中该字段为空,则设置默认值
                    let serve= yt[i]["商铺名称"] || "自营";// 如果表格中该字段为空,则设置默认值
                    let eight= yt[i]["中间商"] || "校长"; // 如果表格中该字段为空,则设置默认值
                    let nine= yt[i]["客服"] || "WC"; // 如果表格中该字段为空,则设置默认值
                    let ten= yt[i]["备注"] || "结束";  // 如果表格中该字段为空,则设置默认值
                     let sheetData = {
                         // 键名为绑定 el 表格的关键字,值则是 ws[i][对应表头名]
                         one: one,
                         two: two,
                         three: three,
                         four: four,
                         five:five,
                         six:six,
                         serve:serve,
                         eight:eight,
                         nine: nine,
                         ten:ten
                     };

                     params.push(sheetData)
                 }
                  // 这里是走的后端接口
                 inital(params).then(res=>{
                   this.$message({
                       message: "导入数据表格成功",
                       showClose: true,
                       type: "success",
                   });
                    this.onLoad(this.page)
                 })
             } catch (e) {
               this.$message({
                   message: "导入数据表格失败"+e,
                   showClose: true,
                   type: "error",
               });
                 return false;
             }
         };
         // 如果为原生 input 则应是 files[0]
         fileReader.readAsBinaryString(file.raw);

       },
       fileonChange(file,fileList){
         this.initalizeImport(file)
       },

它首先检查上传的文件是否符合要求(必须为 xls 或 xlsx 格式),然后使用 FileReader 对象读取文件内容,并利用 js-xlsx 库将 Excel 表格转化为 JSON 格式。最后,它遍历 JSON 数据,并将每行数据封装成一个对象放入数组中,最终完成数据的导入。需要根据实际情况进行调整。

第一层循环代码的意思是

这段代码是遍历导入的 Excel 表格中的数据,并将每一行数据封装成一个对象,然后将该对象添加到名为 params 的数组中。具体来说,代码通过循环遍历 ws 数组(即导入的 Excel 数据转换后的 JSON 数组),在每次循环的过程中,根据表头名称将对应的值赋给新创建的对象的相应属性。同时,它也会判断是否存在规格型号的值,如果存在,则将该值赋给 specs 属性。最后,将创建的对象添加到 params 数组中。第二层也是。文章来源地址https://www.toymoban.com/news/detail-824594.html

到了这里,关于使用element实现导入execl表格的功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 使用JavaScript和Vue.js框架开发的电子商务网站,实现商品展示和购物车功能

    引言: 随着互联网的快速发展和智能手机的普及,电子商务行业正迎来一个全新的时代。越来越多的消费者选择网上购物,而不再局限于传统的实体店。这种趋势不仅仅是改变了消费者的习惯购物,也给企业带来了巨大的商机。为了不断满足消费者的需求,电子商务网站需要

    2024年02月15日
    浏览(47)
  • vue3+element-plus实现表格多选功能(可以清除选项或分页保留选项)

    如图所示,在实际开发中,数据量大的表格基本都添加上了分页功能,每个页面请求的数据回交换更新,第一页的选中效果在跳转至第二页后,如果没有做相关处理,选中项会被清空,具体解决方法如下 在需要处理的表格标签中加上 :row-key=\\\"getRowKeys\\\" 以及 @selection-change=“ha

    2024年02月12日
    浏览(38)
  • vue3+ts+element-plus 之使用node.js对接mysql进行表格数据展示

    * 初始化node 查看node是否安装 node -v 初始化命令 npm init 初始化配置解释如下: 完成后会有一个package.json文件 * 安装可能用到的依赖 根据需求安装,我这里需要对接mysql,安装依赖 ,我是一次性安装完,后边会直接使用,也可以边安装边使用。如下 安装成功如下: * 配置文件

    2024年02月15日
    浏览(34)
  • 【Vue】Vue 使用 Print.js 打印选中区域的html,用到的是Element ui table表格,解决页面样式不出现或者table表格样式错乱问题!!!

    需求 : 打击打印按钮,文字内容以及表格中的内容 解决方案 加上这句就好了!完美! 一、因为表格数据过多,之前加了表格滚动条,但是打印出来 会把表格上的滚动条也打印出来,所以这里改成了 给弹框加滚动条,去掉表格中的滚动条 2.1 原因: table-layout: fixed导致的,

    2024年02月09日
    浏览(56)
  • element+vue 表格行拖拽功能

    解决方案 使用 sortable.js 步骤一: 安装 步骤二:引入 步骤三: el-table 添加row-key属性,外层包一层 sortableDiv 实例: 下图的重点: 1.el-table 添加row-key属性,2.外层包一层 sortableDiv, 3.图标drag-icon 步骤四 : 将拖拽元素设置为要拖动项的父级元素 看完整的demo示例:

    2024年02月12日
    浏览(26)
  • Vue+Element-UI 实现前端分页功能,利用el-table和el-pagination组件实现表格前端分页

    Vue+Element-UI 实现前端分页功能,利用el-table和el-pagination组件实现表格前端分页:         当table的数据量比较大的时候,一个屏幕展示不出全部的数据,这个时候就需要分页显示。而多数情况下都是做的后端分页,就是将分页参数和查询条件一并传到后端,后端将当前页要

    2024年01月20日
    浏览(43)
  • EasyExcel实现execl导入导出

    在实际开发中,处理 Excel 文件是一个常见的需求。EasyExcel 是一个基于 Java 的开源库,提供了简单易用的 API,可以方便地读取和写入 Excel 文件。本文将介绍如何使用 EasyExcel 实现 Excel 导入功能,以及一些相关的技巧和注意事项。 在开始之前,我们需要准备好 EasyExcel 的环境。

    2024年02月09日
    浏览(31)
  • Vue中使用Element UI的Table组件实现嵌套表格(最简单示例)

    以下是一个简单的示例代码,演示如何在Vue中使用Element UI的Table组件实现嵌套表格: 上面的代码通过type=\\\"expand\\\"设置了一个展开按钮,点击该按钮会显示与当前行关联的子表格内容。 在上面的示例中,我们定义了一个包含姓名和年龄的主表格,以及一个展开列用于显示与每行

    2024年02月02日
    浏览(39)
  • 随手记:使用sortable.js 实现element-ui el-table 表格上下拖拽排序

    需求场景: 表格可以实现上下拖拽row实现新排序 首先,安装sortable.js  引入表格排  全局挂在组件 使用页面引入 使用sortable.js表格一定要有唯一的row-key,一般绑定的是id,不然拖拽会不生效 data声明 sortableContainer: null,为的是后面如果有需要可以做销毁操作   因为我这里是表

    2024年02月22日
    浏览(39)
  • 如何使用Vue实现Excel表格数据的导入,在前端实现Excel表格文件的上传和解析,并使用Table组件将解析出来的数据展示在前端页面上

    随着互联网的发展和社会的进步,各个行业的数据量越来越大,对于数据的处理变得越来越重要。其中,Excel表格是一种重要的数据处理工具。在前后端项目中,实现Excel表格的导入和导出功能也愈加常见。这篇文章将介绍如何使用Vue实现Excel表格数据的导入。 在开始介绍实现

    2024年02月11日
    浏览(34)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包