上傳Execl并轉(zhuǎn)為js的對(duì)象數(shù)組

引入方式:

CDN:

<script src="https://cdn.jsdelivr.net/npm/xlsx/dist/xlsx.full.min.js"></script>

NPM:

npm install xlsx

vue 使用樣例

將文件上傳與將Excel數(shù)據(jù)轉(zhuǎn)換為對(duì)象數(shù)組配合使用,可以實(shí)現(xiàn)在前端上傳Excel文件并將數(shù)據(jù)顯示在頁面上的功能。

<template>
  <div>
    <input type="file" ref="fileInput" @change="onFileChange" />
    <table>
      <thead>
        <tr>
          <th v-for="header in headers">{{ header }}</th>
        </tr>
      </thead>
      <tbody>
        <tr v-for="row in rows">
          <td v-for="cell in row">{{ cell }}</td>
        </tr>
      </tbody>
    </table>
  </div>
</template>

<script>
import * as XLSX from 'xlsx';

export default {
  data() {
    return {
      headers: [],
      rows: []
    };
  },
  methods: {
    onFileChange(e) {
      // 獲取上傳的文件
      const file = e.target.files[0];

      // 讀取Excel文件
      const reader = new FileReader();
      reader.onload = (e) => {
        const data = new Uint8Array(e.target.result);
        const workbook = XLSX.read(data, { type: 'array' });

        // 獲取第一個(gè)工作表
        const sheetName = workbook.SheetNames[0];
        const worksheet = workbook.Sheets[sheetName];

        // 將Excel數(shù)據(jù)轉(zhuǎn)換成對(duì)象數(shù)組
        const jsonData = XLSX.utils.sheet_to_json(worksheet, { header: 1 });

        // 設(shè)置表頭和數(shù)據(jù)
        this.headers = jsonData[0];
        this.rows = jsonData.slice(1);
      };
      reader.readAsArrayBuffer(file);
    }
  }
};
</script>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 用戶圖片上傳思路: 1.點(diǎn)擊上傳,通過一個(gè)input type="file"選擇你要上傳的圖片2.點(diǎn)擊確定,馬上上...
    sweetBoy_9126閱讀 1,593評(píng)論 0 2
  • 2018web前端最新面試題總結(jié) 一、Html/Css基礎(chǔ)模塊 基礎(chǔ)部分 什么是HTML?答:? HTML并不是...
    duans_閱讀 4,718評(píng)論 3 27
  • 33、JS中的本地存儲(chǔ) 把一些信息存儲(chǔ)在當(dāng)前瀏覽器指定域下的某一個(gè)地方(存儲(chǔ)到物理硬盤中)1、不能跨瀏覽器傳輸:在...
    萌妹撒閱讀 2,255評(píng)論 0 2
  • 一般 vue 的項(xiàng)目,大家都是直接把最后生成的 css js 等文件直接上傳到服務(wù)器,并沒有cdn 的業(yè)務(wù) 這樣做...
    jackPan閱讀 1,779評(píng)論 3 4
  • 一、概述 在項(xiàng)目開發(fā)中,很多時(shí)候用到七牛云對(duì)象存儲(chǔ)來保存項(xiàng)目的靜態(tài)文件,如視頻,圖片,大文件,等等。如果說項(xiàng)目文件...
    極客開發(fā)者閱讀 783評(píng)論 0 1

友情鏈接更多精彩內(nèi)容