返回顶部
首页 > 资讯 > 精选 >vue如何导入处理Excel表格
  • 932
分享到

vue如何导入处理Excel表格

2023-07-02 16:07:32 932人浏览 安东尼
摘要

本篇内容介绍了“Vue如何导入处理excel表格”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!vue导入Excel表格vue导入Excel表

本篇内容介绍了“Vue如何导入处理excel表格”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

vue导入Excel表格

vue导入Excel表格主要有两种常用的方法,一个是借助ElementUI文件上传进行表格导入,另一个是自带的input做文件上传;以下对两个方法做详细介绍;

1 使用ElementUI中的upload组件

安装ElementUI

npm i element-ui -S

安装Excel表格解析插件

npm i xlsx -S

导入需要用的工具

import Vue from "vue";import ElementUI from "element-ui";import "element-ui/lib/theme-chalk/index.CSS";import { read, utils } from "xlsx"; // 注意处理方法引入方式Vue.use(ElementUI);

引入组件

<el-upload        action="https://JSONplaceholder.typicode.com/posts/"        :on-success="handleChange"        :file-list="fileList"        class="el-upload"      >

添加处理逻辑

// 导入成功时执行handleChange(res, file, fileList) {      // 将文件放入      for (let i = 0; i < fileList.length; i++) {        if (file.name != fileList[i].name) {          this.fileList.push({            name: file.name,            url: "",            uid: file.uid          });        }      }      const files = { 0: file };      this.readExcel(files);    },    readExcel(file) {      const fileReader = new FileReader();      fileReader.onload = ev => {        try {          const data = ev.target.result;          const workbook = read(data, { type: "binary" });          const params = [];          // 取对应表生成json表格内容          workbook.SheetNames.forEach(item => {            this.tableData.push(utils.sheet_to_json(workbook.Sheets[item]));          });          // 该算法仅针对表头无合并的情况          if (this.tableData.length > 0) {            // 获取excel中第一个表格数据tableData[0][0],并且将表头提取出来            for (const key in this.tableData[0][0]) {              this.tableHead.push(key);            }          }          // 重写数据        } catch (e) {          console.log("error:" + e);          return false;        }      };      fileReader.readAsBinaryString(file[0].raw);    }

以上处理的数据我这边用组件展示在了页面上,效果如下图:

vue如何导入处理Excel表格

2 使用input文件上传

安装Excel表格解析插件

npm i xlsx -S

导入需要用的工具包

import { read, utils } from "xlsx"; // 注意处理方法引入方式

使用input

<div class="flex-display">      <div class="left-box">文件上传(input):</div>      <input type="file" v-on:change="onChange" class="file-ipt" />    </div>

添加处理逻辑

基本与上面处理逻辑相同

onChange(e) {      const file = e.target.files[0];      const fileReader = new FileReader();      fileReader.onload = ev => {        try {          const data = ev.target.result;          const workbook = read(data, { type: "binary" });          const params = [];          // 取对应表生成json表格内容          workbook.SheetNames.forEach(item => {            params.push({              name: item,              dataList: utils.sheet_to_json(workbook.Sheets[item])            });            this.tableData.push(utils.sheet_to_json(workbook.Sheets[item]));          });          // 该算法仅针对表头无合并的情况          if (this.tableData.length > 0) {            // 获取excel中第一个表格数据tableData[0][0],并且将表头提取出来            for (const key in this.tableData[0][0]) {              this.tableHead.push(key);            }          }          return params;          // 重写数据        } catch (e) {          console.log("error:" + e);          return false;        }      };      fileReader.readAsBinaryString(file);    }

总体代码与效果

效果如下:

vue如何导入处理Excel表格

总的样式以及代码如下:

<template>  <div>    <div class="flex-display">      <div class="left-box">表格上传(ElementUI):</div>      <el-upload        action="Https://jsonplaceholder.typicode.com/posts/"        :on-success="handleChange"        :file-list="fileList"        class="el-upload"      >        <el-button size="small" type="primary" class="el-btn"          >点击上传</el-button        >        <div slot="tip" class="el-upload-tip">          只能上传xlsx文件,且不超过5MB        </div>      </el-upload>    </div>    <el-table v-if="tableHead.length" :data="tableData[0]" >      <el-table-column        v-for="(data, key) in tableHead"        :prop="data"        :label="data"        :key="key"        width="180"      >      </el-table-column>    </el-table>    <div class="flex-display">      <div class="left-box">文件上传(input):</div>      <input type="file" v-on:change="onChange" class="file-ipt" />    </div>  </div></template><script>import Vue from "vue";import ElementUI from "element-ui";import "element-ui/lib/theme-chalk/index.css";import { read, utils } from "xlsx";Vue.use(ElementUI);export default {  data() {    return {      fileList: [], //上传文件列表      tableHead: [], //表头      tableData: [] // 表数据    };  },  methods: {    onChange(e) {      const file = e.target.files[0];      const fileReader = new FileReader();      fileReader.onload = ev => {        try {          const data = ev.target.result;          const workbook = read(data, { type: "binary" });          const params = [];          // 取对应表生成json表格内容          workbook.SheetNames.forEach(item => {            params.push({              name: item,              dataList: utils.sheet_to_json(workbook.Sheets[item])            });            this.tableData.push(utils.sheet_to_json(workbook.Sheets[item]));          });          // 该算法仅针对表头无合并的情况          if (this.tableData.length > 0) {            // 获取excel中第一个表格数据tableData[0][0],并且将表头提取出来            for (const key in this.tableData[0][0]) {              this.tableHead.push(key);            }          }          return params;          // 重写数据        } catch (e) {          console.log("error:" + e);          return false;        }      };      fileReader.readAsBinaryString(file);    },    handleChange(res, file, fileList) {      // 将文件放入      for (let i = 0; i < fileList.length; i++) {        if (file.name != fileList[i].name) {          this.fileList.push({            name: file.name,            url: "",            uid: file.uid          });        }      }      // this.fileList = fileList.slice(-3);      const files = { 0: file };      this.readExcel(files);    },    readExcel(file) {      const fileReader = new FileReader();      fileReader.onload = ev => {        try {          const data = ev.target.result;          const workbook = read(data, { type: "binary" });          const params = [];          // 取对应表生成json表格内容          workbook.SheetNames.forEach(item => {            params.push({              name: item,              dataList: utils.sheet_to_json(workbook.Sheets[item])            });            this.tableData.push(utils.sheet_to_json(workbook.Sheets[item]));          });          // 该算法仅针对表头无合并的情况          if (this.tableData.length > 0) {            // 获取excel中第一个表格数据tableData[0][0],并且将表头提取出来            for (const key in this.tableData[0][0]) {              this.tableHead.push(key);            }          }          return params;          // 重写数据        } catch (e) {          console.log("error:" + e);          return false;        }      };      fileReader.readAsBinaryString(file[0].raw);    }  }};</script><style lang="scss" scoped>.upload-demo {  width: 100%;}.flex-display {  margin: 50px 30px;  width: 100%;  display: flex;  justify-content: flex-start;  .left-box {    margin: 20 30;    height: 36px;    line-height: 36px;  }}.el-upload {  margin-left: 40px;  .el-btn {    font-size: 16px;  }  .el-upload-tip {    display: inline;    font-size: 12px;  }}.file-ipt {  width: 200px;  height: 36px;  line-height: 36px;  button {    background-color: #409eff;  }}input #file-upload-button {  background-color: #409eff;}</style>

“vue如何导入处理Excel表格”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: vue如何导入处理Excel表格

本文链接: https://lsjlt.com/news/343143.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vue如何导入处理Excel表格
    本篇内容介绍了“vue如何导入处理Excel表格”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!vue导入Excel表格vue导入Excel表...
    99+
    2023-07-02
  • vue导入处理Excel表格功能步骤详解
    目录1. 前言2.vue导入Excel表格2.1 使用ElementUI中的upload组件2.2 使用input文件上传3. 总体代码与效果4. 总结1. 前言 最近遇到前端导入并...
    99+
    2024-04-02
  • vue怎么实现excel表格的导入导出
    这篇文章主要介绍“vue怎么实现excel表格的导入导出”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue怎么实现excel表格的导入导出”文章能帮助大家解决问题。一、下载xlsx插件npm&nb...
    99+
    2023-07-06
  • vue实现excel表格的导入导出的示例
    目录一、下载xlsx插件二、通过element-ui组件的upload组件上传文件三、把选择的Excel文件把文件内容转化为二进制四、通过插件中的xlsx.read()读取二进制数据...
    99+
    2023-05-15
    vue excel导入导出 vue excel导入 vue excel导出
  • Python处理EXCEL表格导入操作分步讲解
    目录一、前期准备二、编写代码基本思路三、编写代码读取数据四、结语一、前期准备 此篇使用两种导入excel数据的方式,形式上有差别,但两者的根本方法实际上是一样的。 首先需要安装两个模...
    99+
    2024-04-02
  • Java如何利用POI实现导入导出Excel表格
    这篇文章主要介绍“Java如何利用POI实现导入导出Excel表格”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java如何利用POI实现导入导出Excel表格”文章能帮助大家解决问题。一、Java...
    99+
    2023-07-06
  • 怎么用vue导出excel表格
    这篇文章主要介绍了怎么用vue导出excel表格的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用vue导出excel表格文章都会有所收获,下面我们一起来看看吧。一、安装vue-json-excelnpm&n...
    99+
    2023-06-30
  • navicat怎么把excel表格导入
    使用 navicat 导入 excel 表格到数据库:连接数据库。创建数据库表。右键单击表,选择“导入向导”。选择 excel 文件类型并浏览选择文件。匹配 excel 列与数据库字段。...
    99+
    2024-04-23
    navicat
  • excel图表如何嵌入表格
    要将Excel图表嵌入到表格中,可以按照以下步骤操作:1. 打开Excel文档并选择要插入图表的工作表。2. 选中要插入图表的数据,...
    99+
    2023-09-29
    excel
  • Python如何写入excel表格
    这篇“Python如何写入excel表格”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python如何写入excel表格”文...
    99+
    2023-06-27
  • 使用SpringBoot+EasyExcel+Vue实现excel表格的导入和导出详解
    目录一、导入和导出二、导出数据为excel实现过程三、将excel中的数据导入到数据库中一、导入和导出 导入:通过解析excel表格中的数据,然后将数据放到一个集合中,接着通过对持久...
    99+
    2024-04-02
  • oracle如何导入excel数据表
    Oracle数据库提供了多种方法来导入Excel数据表。1. 使用Oracle SQL Developer工具导入:可以使用Orac...
    99+
    2023-09-05
    oracle excel
  • Java利用POI实现导入导出Excel表格
    本文实例为大家分享了Java利用POI实现导入导出Excel表格的具体代码,供大家参考,具体内容如下 一、Java利用POI实现导入导出Excel表格demo 1.引入依赖 <...
    99+
    2024-04-02
  • Vue如何实现导入Excel功能
    这篇文章主要介绍了Vue如何实现导入Excel功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.前端主导实现步骤第一步,点击页面上的导入按钮,读入Excel文件利用插件完...
    99+
    2023-06-20
  • Jupyter Notebooks的安装和Excel表格导入
    一、pip 方法安装Jupyter Notebooks 使用pip命令安装之前需要我们先安装Python。此处以python3.10为例 1.安装Python 可以在python下载处,选择对应的系统版本,我这里选择Windows x86-...
    99+
    2023-09-27
    python pip pandas
  • Excel表格数据导入MySQL数据库
    公司业务需要把Excel表中的十多万条数据导入到数据库表中,这样比执行sql语句插入数据快多了 比如:想把如下图的(sanyi.xlsx)Excel表格导入MySQL表(tb_sanyi_client...
    99+
    2023-09-10
    mysql 数据库 database
  • 腾讯文档如何导出excel表格
    这篇文章主要讲解了“腾讯文档如何导出excel表格”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“腾讯文档如何导出excel表格”吧!腾讯文档导出excel表格教程 找到并选择想要转...
    99+
    2023-07-01
  • 图文详解如何在navicat中导入excel表格数据
    目录基础操作篇1. 首先打开navicat 软件,进入后打开连接2. 进入后选择新建数据库3. 数据库名随便输入一个,字符集选择 utf8,排序规则选择utf8_general_ci...
    99+
    2023-02-28
    navicat导入excel表格 navicat导入excel navicat导入数据
  • Vue导入excel表,导入失败的数据自动下载
    有这么一个需求:一个导入按钮,点击按钮导入excel表,如果excel表中部分数据导入失败,则自动下载该部分导入失败数据的excel表,如果全部导入成功,则提示“导入成功”。 首先附...
    99+
    2024-04-02
  • vue引入Excel表格插件的方法
    本文实例为大家分享了vue引入Excel表格插件的具体代码,供大家参考,具体内容如下 一、安装 npm install handsontable-pro @handsontabl...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作