欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue3采用xlsx庫實現(xiàn)本地上傳excel文件功能

 更新時間:2025年02月24日 09:55:31   作者:阿麗塔~  
這篇文章主要為大家詳細(xì)介紹了vue3如何采用xlsx庫實現(xiàn)本地上傳excel文件功能,并且前端解析為Json數(shù)據(jù),感興趣的小伙伴可以了解一下

需求:本地上傳excel 文件,但需要對excel 文件的內(nèi)容進(jìn)行解析,然后展示出來

1. 安裝依賴

首先,確保安裝了 xlsx 庫:

npm install xlsx

2. 創(chuàng)建 Vue 組件

創(chuàng)建一個 Vue 組件(如 ExcelUpload.vue),用于實現(xiàn)文件上傳和解析功能。

組件代碼:

<template>
  <div>
    <input type="file" class="file-btn hoverPointer" accept=".xls,.xlsx"

                            @change="changeExcel($event)" />
    <div v-if="tableData.length > 0">
      <table>
        <thead>
          <tr>
            <th v-for="header in headers" :key="header">{{ header }}</th>
          </tr>
        </thead>
        <tbody>
          <tr v-for="(row, index) in tableData" :key="index">
            <td v-for="cell in row" :key="cell">{{ cell }}</td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
</template>

<script>
import { ref } from 'vue';
import * as XLSX from 'xlsx';

export default {
  setup() {
    const headers = ref([]);
    const tableData = ref([]);

    const changeExcel= (event) => {

        const files = e.target.files

        if (files.length <= 0) {

            return false

        } else if (!/\.(xls|xlsx)$/.test(files[0].name.toLowerCase())) {

            console.log('上傳格式不正確,請上傳xls或者xlsx格式')

            return false

        }

      const reader = new FileReader();
      reader.onload = (e) => {
        const data = e.target.result;
        const workbook = XLSX.read(data, { type: 'binary' });
        const sheetName = workbook.SheetNames[0];
        const worksheet = workbook.Sheets[sheetName];
        const json = XLSX.utils.sheet_to_json(worksheet, { header: 1 });

        headers.value = json[0]; // 表頭
        tableData.value = json.slice(1); // 表格數(shù)據(jù)
      };
      reader.readAsBinaryString(files);
    };

    return {
      headers,
      tableData,
      handleFileUpload,
    };
  },
};
</script>

<style scoped>
table {
  width: 100%;
  border-collapse: collapse;
}
th, td {
  border: 1px solid #ccc;
  padding: 8px;
  text-align: left;
}
</style>

3. 使用組件

在主應(yīng)用文件(如 App.vue)中引入并使用該組件:

<template>
  <div id="app">
    <ExcelUpload />
  </div>
</template>

<script>
import ExcelUpload from './components/ExcelUpload.vue';

export default {
  name: 'App',
  components: {
    ExcelUpload,
  },
};
</script>

4. 功能說明

文件上傳:通過 <input type="file"> 元素選擇 Excel 文件。

文件讀?。菏褂?FileReader 讀取文件內(nèi)容為二進(jìn)制字符串 。

解析為 JSON:使用 xlsx 庫將 Excel 數(shù)據(jù)轉(zhuǎn)換為 JSON 格式 。

數(shù)據(jù)展示:將解析后的表頭和數(shù)據(jù)展示在表格中。

5. 擴(kuò)展功能

錯誤處理:在文件讀取和解析過程中添加錯誤處理,提示用戶文件格式錯誤或解析失敗。

大文件優(yōu)化:對于大文件,可以分頁顯示數(shù)據(jù)或使用異步加載。

自定義解析邏輯:根據(jù)實際需求,對數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換或校驗。

通過以上步驟,你可以在 Vue 3 項目中實現(xiàn)本地上傳 Excel 文件并解析為 JSON 數(shù)據(jù)的功能。

以上就是vue3采用xlsx庫實現(xiàn)本地上傳excel文件功能的詳細(xì)內(nèi)容,更多關(guān)于vue3 xlsx實現(xiàn)excel上傳的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 淺析從面向?qū)ο笏季S理解Vue組件

    淺析從面向?qū)ο笏季S理解Vue組件

    用面向?qū)ο蟮乃季S去理解Vue組件,可以將所有的事物都抽象為對象,而類或者說是組件,都具有屬性和操作。這篇文章主要介紹了嘗試用面向?qū)ο笏季S理解Vue組件,需要的朋友可以參考下
    2021-07-07
  • weex里Vuex state使用storage持久化詳解

    weex里Vuex state使用storage持久化詳解

    本篇文章主要介紹了weex里Vuex state使用storage持久化詳解,非常具有實用價值,需要的朋友可以參考下
    2017-09-09
  • vue-cli2.9.3 詳細(xì)教程

    vue-cli2.9.3 詳細(xì)教程

    這篇文章主要介紹了vue-cli2.9.3 詳細(xì)教程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • vue3解構(gòu)賦值失去響應(yīng)式引發(fā)的問題思考

    vue3解構(gòu)賦值失去響應(yīng)式引發(fā)的問題思考

    這篇文章主要介紹了vue3解構(gòu)賦值失去響應(yīng)式引發(fā)的問題思考,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-06-06
  • 詳解axios在vue中的簡單配置與使用

    詳解axios在vue中的簡單配置與使用

    本篇文章主要介紹了詳解axios在vue中的簡單配置與使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 最適應(yīng)的vue.js的form提交涉及多種插件【推薦】

    最適應(yīng)的vue.js的form提交涉及多種插件【推薦】

    這篇文章主要介紹了最適應(yīng)的vue.js的form提交涉及多種插件,涉及到 vue.js動態(tài)添加css樣式 ,tab切換 ,touch,表單提交,驗證,toast,數(shù)據(jù)雙向綁定等。需要的朋友可以參考下
    2018-08-08
  • 在Vue中獲取自定義屬性方法:data-id的實例

    在Vue中獲取自定義屬性方法:data-id的實例

    這篇文章主要介紹了在Vue中獲取自定義屬性方法:data-id的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • vue?路由切換過渡動效滑入滑出效果的實例代碼

    vue?路由切換過渡動效滑入滑出效果的實例代碼

    在支付寶賬單頁面有這樣一個特效切換過渡動效滑入滑出效果,非常方便實用,那么這個功能如何實現(xiàn)的呢?下面小編通過vue實現(xiàn)路由切換過渡動效滑入滑出效果,感興趣的朋友一起看看吧
    2022-03-03
  • Vue和React組件之間的傳值方式詳解

    Vue和React組件之間的傳值方式詳解

    這篇文章主要介紹了Vue和React組件之間的傳值方式詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • vue中如何配置proxy代理

    vue中如何配置proxy代理

    這篇文章主要介紹了vue中如何配置proxy代理問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01

最新評論