最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue導(dǎo)出Excel文件的四種實(shí)現(xiàn)方式

 更新時(shí)間:2025年12月19日 08:53:18   作者:悟能不能悟  
文章介紹了四種在Vue.js中導(dǎo)出Excel文件的方法,包括前端使用xlsx庫(kù)、exceljs,使用現(xiàn)成組件vue-json-excel,以及后端生成,每種方法都有其適用場(chǎng)景和優(yōu)缺點(diǎn),推薦根據(jù)具體需求選擇合適的方法,需要的朋友可以參考下

Vue.js 本身不提供直接導(dǎo)出 Excel 的功能,但可以通過以下幾種方式實(shí)現(xiàn):

1.前端導(dǎo)出方案

使用 xlsx 庫(kù)(推薦)

npm install xlsx
# 或
yarn add xlsx
<template>
  <button @click="exportExcel">導(dǎo)出Excel</button>
</template>

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

export default {
  data() {
    return {
      tableData: [
        { name: '張三', age: 25, city: '北京' },
        { name: '李四', age: 30, city: '上海' }
      ]
    }
  },
  methods: {
    exportExcel() {
      // 創(chuàng)建工作簿
      const wb = XLSX.utils.book_new();
      
      // 創(chuàng)建工作表
      const ws = XLSX.utils.json_to_sheet(this.tableData);
      
      // 將工作表添加到工作簿
      XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
      
      // 導(dǎo)出文件
      XLSX.writeFile(wb, '用戶數(shù)據(jù).xlsx');
    }
  }
}
</script>

使用 exceljs(功能更強(qiáng)大)

npm install exceljs
npm install file-saver
import ExcelJS from 'exceljs';
import { saveAs } from 'file-saver';

async exportExcel() {
  const workbook = new ExcelJS.Workbook();
  const worksheet = workbook.addWorksheet('Sheet1');
  
  // 添加表頭
  worksheet.columns = [
    { header: '姓名', key: 'name' },
    { header: '年齡', key: 'age' },
    { header: '城市', key: 'city' }
  ];
  
  // 添加數(shù)據(jù)
  this.tableData.forEach(item => {
    worksheet.addRow(item);
  });
  
  // 保存文件
  const buffer = await workbook.xlsx.writeBuffer();
  const blob = new Blob([buffer], { 
    type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' 
  });
  saveAs(blob, '用戶數(shù)據(jù).xlsx');
}

2.使用現(xiàn)成組件

vue-json-excel

npm install vue-json-excel
<template>
  <download-excel
    :data="tableData"
    :fields="jsonFields"
    name="用戶數(shù)據(jù).xlsx"
  >
    <button>導(dǎo)出Excel</button>
  </download-excel>
</template>

<script>
import JsonExcel from 'vue-json-excel';

export default {
  components: {
    'download-excel': JsonExcel
  },
  data() {
    return {
      tableData: [...],
      jsonFields: {
        '姓名': 'name',
        '年齡': 'age',
        '城市': 'city'
      }
    }
  }
}
</script>

3.后端生成方案

如果數(shù)據(jù)量大或需要復(fù)雜格式,建議后端生成:

// 前端調(diào)用
exportExcel() {
  axios({
    url: '/api/export/excel',
    method: 'GET',
    responseType: 'blob'  // 重要:接收文件流
  }).then(response => {
    const blob = new Blob([response.data], {
      type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
    });
    const url = window.URL.createObjectURL(blob);
    const link = document.createElement('a');
    link.href = url;
    link.download = 'data.xlsx';
    link.click();
    window.URL.revokeObjectURL(url);
  });
}

4.簡(jiǎn)單表格導(dǎo)出

exportTable() {
  const table = document.querySelector('#your-table');
  const wb = XLSX.utils.table_to_book(table);
  XLSX.writeFile(wb, '表格數(shù)據(jù).xlsx');
}

注意事項(xiàng)

  1. 數(shù)據(jù)量大時(shí):建議使用后端導(dǎo)出,避免瀏覽器內(nèi)存溢出
  2. 格式化處理:日期、數(shù)字等特殊格式需要轉(zhuǎn)換
  3. 樣式需求:如需復(fù)雜樣式,建議使用 exceljs
  4. 兼容性:xlsx 庫(kù)兼容性較好,支持多種格式

推薦方案

  • 簡(jiǎn)單場(chǎng)景:使用 xlsx 庫(kù)
  • 需要樣式和復(fù)雜功能:使用 exceljs
  • 大數(shù)據(jù)量:后端生成

到此這篇關(guān)于Vue導(dǎo)出Excel文件的四種實(shí)現(xiàn)方式的文章就介紹到這了,更多相關(guān)Vue導(dǎo)出Excel文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue Element前端應(yīng)用開發(fā)之獲取后端數(shù)據(jù)

    Vue Element前端應(yīng)用開發(fā)之獲取后端數(shù)據(jù)

    這篇文章主要介紹了Vue Element前端應(yīng)用開發(fā)之獲取后端數(shù)據(jù),對(duì)vue感興趣的同學(xué),可以參考下
    2021-05-05
  • 詳解如何在Electron中存取本地文件

    詳解如何在Electron中存取本地文件

    在Electron 中,存取本地文件,有很多種辦法,本文介紹最常用的一種辦法, 通過 Electron 框架提供的能力,和 Node.js 的 fs 文件管理模塊實(shí)現(xiàn)本地文件的存取,需要的小伙伴可以參考下
    2023-11-11
  • vue使用input封裝上傳文件圖片全局組件的示例代碼

    vue使用input封裝上傳文件圖片全局組件的示例代碼

    實(shí)際開發(fā)過程中,我們經(jīng)常遇見需要上傳文件圖片功能,可以封裝一個(gè)全局組件來調(diào)用,這篇文章給大家介紹vue使用input封裝上傳文件圖片全局組件,感興趣的朋友跟隨小編一起看看吧
    2023-11-11
  • vue實(shí)現(xiàn)選項(xiàng)卡小案例

    vue實(shí)現(xiàn)選項(xiàng)卡小案例

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)選項(xiàng)卡小案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • vue?extend+promise封裝全局彈窗組件

    vue?extend+promise封裝全局彈窗組件

    這篇文章主要為大家詳細(xì)介紹了vue?extend+promise封裝全局彈窗組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • vuex 使用文檔小結(jié)篇

    vuex 使用文檔小結(jié)篇

    Vuex 是一個(gè)專為Vue.js應(yīng)用程序開發(fā)的狀態(tài)管理模式,集中式存儲(chǔ)管理應(yīng)用的所有組件狀態(tài)。本文給大家介紹了vuex使用文檔,需要的朋友參考下吧
    2018-01-01
  • Vue的條件判斷問題及說明

    Vue的條件判斷問題及說明

    文章主要介紹了Vue中的v-if、v-else-if和v-else的等這三種指令的使用方法和場(chǎng)景,還對(duì)比了v-if和v-show的區(qū)別,并提供了實(shí)際開發(fā)中選擇v-if或v-show的的建議
    2026-05-05
  • 在UniApp中實(shí)現(xiàn)App與H5頁面的跳轉(zhuǎn)及通信的代碼示例

    在UniApp中實(shí)現(xiàn)App與H5頁面的跳轉(zhuǎn)及通信的代碼示例

    在移動(dòng)應(yīng)用開發(fā)中,內(nèi)嵌 H5 頁面或與外部網(wǎng)頁交互是常見需求,UniApp 作為跨平臺(tái)框架,提供了靈活的方式實(shí)現(xiàn) App 與 H5 的跳轉(zhuǎn)和雙向通信,本文將詳細(xì)講解實(shí)現(xiàn)方法,并提供可直接復(fù)用的代碼示例,需要的朋友可以參考下
    2025-04-04
  • vuex存取值和映射函數(shù)使用說明

    vuex存取值和映射函數(shù)使用說明

    這篇文章主要介紹了vuex存取值和映射函數(shù)使用說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 利用vue3+threejs仿iView官網(wǎng)大波浪特效實(shí)例

    利用vue3+threejs仿iView官網(wǎng)大波浪特效實(shí)例

    最近好幾個(gè)vue項(xiàng)目都是用ivew作為UI框架,所以下面這篇文章主要給大家介紹了關(guān)于如何利用vue3?+?threejs仿iView官網(wǎng)大波浪特效的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-12-12

最新評(píng)論

荆州市| 历史| 章丘市| 贵港市| 闸北区| 茌平县| 德阳市| 屏南县| 桃园市| 甘孜县| 河津市| 新兴县| 二连浩特市| 马龙县| 舟山市| 阳东县| 宁夏| 绥芬河市| 天气| 福州市| 定结县| 浦县| 寿阳县| 楚雄市| 贵港市| 乾安县| 德州市| 博白县| 大连市| 和政县| 新平| 沙湾县| 荃湾区| 鹤庆县| 永春县| 宝坻区| 新乡县| 荆门市| 兴义市| 汉沽区| 中牟县|