XLSXVue教程:如何使用Vue.js读取和操作Excel文件

在日常的开发工作中,我们会经常遇到需要读取和操作Excel文件的情况。如果使用纯JavaScript或jQuery来实现这一功能,会比较繁琐和复杂。而使用Vue.js可以简化这个过程,并且提供更好的用户体验。下面将为大家详细介绍如何使用Vue.js读取和操作Excel文件。

一、引入xlsx组件库

在使用Vue.js读取和操作Excel文件之前,我们需要先安装并引入xlsx组件库。

npm install --save xlsx

在组件中引入xlsx组件库:

import XLSX from 'xlsx'

二、读取Excel文件

在Vue.js中,使用<input type=”file”/>标签可以让用户选择本地文件上传。然后使用FileReader API将文件读入内存。接下来,我们需要使用XLSX组件库的方法来解析Excel文件。

下面是读取Excel文件的代码示例:

<template>
  <div>
    <input type="file" @change="onFileChange" />
    <table>
      <tr v-for="(item, index) in data" :key="index">
        <td v-for="(value, key) in item" :key="key">{{ value }}</td>
      </tr>
    </table>
  </div>
</template>

<script>
import XLSX from 'xlsx'

export default {
  data () {
    return {
      data: []
    }
  },
  methods: {
    onFileChange (event) {
      let fileList = event.target.files
      const reader = new FileReader()
      reader.onload = (e) => {
        const data = e.target.result
        let workbook = XLSX.read(data, { type: 'binary' })
        let sheet_name_list = workbook.SheetNames
        let worksheet = workbook.Sheets[sheet_name_list[0]]
        let jsonData = XLSX.utils.sheet_to_json(worksheet, { header: 1 })
        this.data = jsonData.map((item) => ({
          date: item[0],
          category: item[1]
        }))
      }
      reader.readAsBinaryString(fileList[0])
    }
  }
}
</script>

三、操作Excel文件

读取完毕之后,我们可以对Excel文件进行一些操作。比如,筛选、排序、添加等等。下面是一个示例,可以根据时间筛选出数据。

<template>
  <div>
    <input type="file" @change="onFileChange" />
    <select v-model="selectDate">
      <option v-for="date in dateList" :key="date" :value="date">{{ date }}</option>
    </select>
    <table>
      <tr v-for="(item, index) in filterData" :key="index">
        <td v-for="(value, key) in item" :key="key">{{ value }}</td>
      </tr>
    </table>
  </div>
</template>

<script>
import XLSX from 'xlsx'

export default {
  data () {
    return {
      data: [],
      selectDate: '',
      filterData: []
    }
  },
  methods: {
    onFileChange (event) {
      let fileList = event.target.files
      const reader = new FileReader()
      reader.onload = (e) => {
        const data = e.target.result
        let workbook = XLSX.read(data, { type: 'binary' })
        let sheet_name_list = workbook.SheetNames
        let worksheet = workbook.Sheets[sheet_name_list[0]]
        let jsonData = XLSX.utils.sheet_to_json(worksheet, { header: 1 })
        this.data = jsonData.map((item) => ({
          date: item[0],
          category: item[1]
        }))
        this.dateList = Array.from(new Set(this.data.map((item) => item.date)))
        this.selectDate = this.dateList[0]
      }
      reader.readAsBinaryString(fileList[0])
    }
  },
  computed: {
    filterData () {
      return this.data.filter((item) => item.date === this.selectDate)
    }
  }
}
</script>

四、导出Excel文件

除了能够读取Excel文件,Vue.js还可以用于导出Excel文件。我们可以使用SheetJS组件库的方法将数据导出为Excel文件。下面是一个导出Excel文件的代码示例:

<template>
  <div>
    <button @click="exportExcel">导出</button>
  </div>
</template>

<script>
import XLSX from 'xlsx'

export default {
  data () {
    return {
      exportData: [
        [ '姓名', '年龄', '性别', '职业', '爱好' ],
        [ '小红', '25', '女', '程序猿', '游泳, 打乒乓球' ],
        [ '小明', '22', '男', '产品经理', '阅读, 看电影' ],
        [ '小王', '23', '男', 'UI 设计师', '画画, 玩游戏' ]
      ]
    }
  },
  methods: {
    exportExcel () {
      const wb = XLSX.utils.book_new()
      const ws = XLSX.utils.aoa_to_sheet(this.exportData)
      XLSX.utils.book_append_sheet(wb, ws, 'Sheet1')
      XLSX.writeFile(wb, '导出的文件.xlsx')
    }
  }
}
</script>

五、小结

以上就是使用Vue.js读取和操作Excel文件的全部内容了。不难发现,使用Vue.js能够轻松地实现复杂的Excel文件操作,而且非常适合需要处理大量数据的场景。希望本文能够对大家有所帮助。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/219771.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-09 11:01
下一篇 2024-12-09 11:01

相关推荐

  • MQTT使用教程

    MQTT是一种轻量级的消息传输协议,适用于物联网领域中的设备与云端、设备与设备之间的数据传输。本文将介绍使用MQTT实现设备与云端数据传输的方法和注意事项。 一、准备工作 在使用M…

    编程 2025-04-29
  • Python3.6.5下载安装教程

    Python是一种面向对象、解释型计算机程序语言。它是一门动态语言,因为它不会对程序员提前声明变量类型,而是在变量第一次赋值时自动识别该变量的类型。 Python3.6.5是Pyt…

    编程 2025-04-29
  • Python栈操作用法介绍

    如果你是一位Python开发工程师,那么你必须掌握Python中的栈操作。在Python中,栈是一个容器,提供后进先出(LIFO)的原则。这篇文章将通过多个方面详细地阐述Pytho…

    编程 2025-04-29
  • vue下载无后缀名的文件被加上后缀.txt,有后缀名的文件下载正常问题的解决

    本文旨在解决vue下载无后缀名的文件被加上后缀.txt,有后缀名的文件下载正常的问题,提供完整的代码示例供参考。 一、分析问题 首先,需了解vue中下载文件的情况。一般情况下,我们…

    编程 2025-04-29
  • Deepin系统分区设置教程

    本教程将会详细介绍Deepin系统如何进行分区设置,分享多种方式让您了解如何规划您的硬盘。 一、分区的基本知识 在进行Deepin系统分区设置之前,我们需要了解一些基本分区概念。 …

    编程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件并生成完整的图像

    OBJ格式是一种用于表示3D对象的标准格式,通常由一组顶点、面和纹理映射坐标组成。在本文中,我们将讨论如何将多个OBJ文件拼接在一起,生成一个完整的3D模型。 一、读取OBJ文件 …

    编程 2025-04-29
  • Python程序文件的拓展

    Python是一门功能丰富、易于学习、可读性高的编程语言。Python程序文件通常以.py为文件拓展名,被广泛应用于各种领域,包括Web开发、机器学习、科学计算等。为了更好地发挥P…

    编程 2025-04-29
  • Python中读入csv文件数据的方法用法介绍

    csv是一种常见的数据格式,通常用于存储小型数据集。Python作为一种广泛流行的编程语言,内置了许多操作csv文件的库。本文将从多个方面详细介绍Python读入csv文件的方法。…

    编程 2025-04-29
  • 为什么用cmd运行Java时需要在文件内打开cmd为中心

    在Java开发中,我们经常会使用cmd在命令行窗口运行程序。然而,有时候我们会发现,在运行Java程序时,需要在文件内打开cmd为中心,这让很多开发者感到疑惑,那么,为什么会出现这…

    编程 2025-04-29
  • 如何使用Python获取某一行

    您可能经常会遇到需要处理文本文件数据的情况,在这种情况下,我们需要从文本文件中获取特定一行的数据并对其进行处理。Python提供了许多方法来读取和处理文本文件中的数据,而在本文中,…

    编程 2025-04-29

发表回复

登录后才能评论