vue-admin-template 新手學習(九)選擇excel 並解析內容在前端展示

29 篇文章 0 订阅
这篇博客介绍了如何在Vue项目中使用xlsx库来处理Excel文件。首先,通过引入xlsx模块,然后在Vue组件中实现文件选择功能。接着,讲解了如何解析上传的Excel内容,并在前端进行展示。感兴趣的读者可以查看作者在GitHub上的开源项目:https://github.com/null2014/shopsmanagement。
摘要由CSDN通过智能技术生成

引入xlsx依賴模塊

npm install xlsx --save

在vue文件引入依賴

import XLSX from 'xlsx'

使用組件選擇文件

<div>
    <input ref="excel-upload-input" class="excel-upload-input" type="file" accept=".xlsx, .xls" @change="handleClick"></input>
    <div>
      <el-button :loading="loading" style="margin-left:16px" size="mini" type="primary" @click="handleUpload">選擇</el-button>
    </div>

js解析文件

readerData(rawFile) {
      this.loading = true
      return new Promise((resolve, reject) => {
        const reader = new FileReader()
        reader.onload = e => {
          const data = e.target.result
          const workbook = XLSX.read(data, { type: 'array' })
          const firstSheetName = workbook.SheetNames[0]
          const worksheet = workbook.Sheets[firstSheetName]
          const header = this.getHeaderRow(worksheet)
          const results = XLSX.utils.sheet_to_json(worksheet)
          this.generateData({ header, results })
          this.loading = false
          resolve()
        }
        reader.readAsArrayBuffer(rawFile)
      })
    },
    getHeaderRow(sheet) {
      const headers = []
      const range = XLSX.utils.decode_range(sheet['!ref'])
      let C
      const R = range.s.r
      for (C = range.s.c; C <= range.e.c; ++C) { /* walk every column in the range */
        const cell = sheet[XLSX.utils.encode_cell({ c: C, r: R })]
        let hdr = 'UNKNOW ' + C
        if (cell && cell.t) hdr = XLSX.utils.format_cell(cell)
        headers.push(hdr)
      }
      return headers
    },

 

大家可以去github康康

https://github.com/null2014/shopsmanagement

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值