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

Vue使用xlsx組件輕松實現(xiàn)Excel導(dǎo)出的完整代碼

 更新時間:2025年05月14日 10:12:44   作者:sg_knight  
在日常開發(fā)中,Excel導(dǎo)出是管理系統(tǒng)的高頻需求,本文手把手教你如何在Vue項目中快速實現(xiàn)Excel導(dǎo)出功能,支持復(fù)雜表格樣式,并附贈性能優(yōu)化方案,需要的朋友可以參考下

一、5分鐘快速上手

1. 安裝核心依賴

npm install xlsx file-saver --save

2. 基礎(chǔ)導(dǎo)出模板(復(fù)制即用)

<template>
  <button @click="exportExcel">導(dǎo)出Excel</button>
</template>

<script>
import { saveAs } from 'file-saver';
import XLSX from 'xlsx';

export default {
  methods: {
    exportExcel() {
      // 示例數(shù)據(jù)
      const data = [
        ['姓名', '年齡', '部門'],
        ['張三', 28, '技術(shù)部'],
        ['李四', 32, '產(chǎn)品部']
      ];
      
      // 創(chuàng)建工作簿
      const ws = XLSX.utils.aoa_to_sheet(data);
      const wb = XLSX.utils.book_new();
      XLSX.utils.book_append_sheet(wb, ws, '員工信息');
      
      // 生成文件并保存
      const buffer = XLSX.write(wb, { bookType: 'xlsx', type: 'array' });
      const blob = new Blob([buffer], { type: 'application/octet-stream' });
      saveAs(blob, '員工列表.xlsx');
    }
  }
}
</script>

二、高級功能拓展

1. 復(fù)雜數(shù)據(jù)結(jié)構(gòu)處理

// 對象數(shù)組轉(zhuǎn)換(自動匹配表頭)
const employees = [
  { name: '王五', age: 25, department: '設(shè)計部' },
  { name: '趙六', age: 30, department: '市場部' }
];

const ws = XLSX.utils.json_to_sheet(employees);

2. 多Sheet頁導(dǎo)出

const ws1 = XLSX.utils.aoa_to_sheet(/* 數(shù)據(jù)源1 */);
const ws2 = XLSX.utils.aoa_to_sheet(/* 數(shù)據(jù)源2 */);

const wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws1, '第一季度');
XLSX.utils.book_append_sheet(wb, ws2, '第二季度');

3. 表格樣式調(diào)整(需xlsx-style擴(kuò)展版)

// 設(shè)置列寬
ws['!cols'] = [{ width: 20 }, { width: 15 }, { width: 25 }];

// 添加標(biāo)題樣式
const titleCell = { v: '員工統(tǒng)計表', s: { font: { bold: true, sz: 18 }, alignment: { horizontal: 'center' } } };

三、性能優(yōu)化方案

1. 大數(shù)據(jù)量分塊處理

// 使用Web Worker處理百萬級數(shù)據(jù)
const worker = new Worker('./excel.worker.js');
worker.postMessage(largeData);

2. 前端分頁導(dǎo)出

let currentPage = 1;
const pageSize = 10000;

function exportByPage() {
  const pageData = getData(currentPage, pageSize);
  // 追加到現(xiàn)有文件...
  currentPage++;
}

3. 二進(jìn)制流加速

// 使用Stream模式處理文件
const writer = XLSX.stream.to_csv(wb, { FS: ',' });
const readable = new ReadableStream({ ... });

四、常見問題排雷

1. 中文文件名亂碼

saveAs(blob, '\uFEFF' + encodeURIComponent('中文名稱.xlsx'));

2. 日期格式處理

// 轉(zhuǎn)換日期為Excel數(shù)字格式
XLSX.SSF.format('yyyy-mm-dd', new Date());

3. 瀏覽器兼容方案

// IE兼容處理
if (window.navigator.msSaveBlob) {
  navigator.msSaveBlob(blob, filename);
}

五、最佳實踐建議

  • 數(shù)據(jù)預(yù)處理:在服務(wù)端完成復(fù)雜計算,前端只做格式轉(zhuǎn)換
  • 內(nèi)存管理:及時清理不再使用的Worksheet對象
  • 錯誤捕獲:添加try-catch處理可能的導(dǎo)出異常
  • 進(jìn)度提示:添加加載動畫提升用戶體驗

掌握這些技巧后,相信你能輕松應(yīng)對各種Excel導(dǎo)出需求。

到此這篇關(guān)于Vue使用xlsx組件輕松實現(xiàn)Excel導(dǎo)出的完整示例代碼的文章就介紹到這了,更多相關(guān)Vue xlsx實現(xiàn)Excel導(dǎo)出內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue實現(xiàn)移動端圖片上傳功能

    vue實現(xiàn)移動端圖片上傳功能

    這篇文章主要為大家詳細(xì)介紹了vue實現(xiàn)移動端圖片上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • vue3.0 搭建項目總結(jié)(詳細(xì)步驟)

    vue3.0 搭建項目總結(jié)(詳細(xì)步驟)

    這篇文章主要介紹了vue3.0 搭建項目總結(jié)(詳細(xì)步驟),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 關(guān)于Vue虛擬dom問題

    關(guān)于Vue虛擬dom問題

    這篇文章主要介紹了Python合成Excel表的實現(xiàn)代碼(多sheet),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • vue3 Class 與 Style 綁定操作方法

    vue3 Class 與 Style 綁定操作方法

    數(shù)據(jù)綁定的一個常見需求場景是操縱元素的 CSS class 列表和內(nèi)聯(lián)樣式,因為 class 和 style 都是 attribute,我們可以和其他 attribute 一樣使用 v-bind 將它們和動態(tài)的字符串綁定,這篇文章主要介紹了vue3 Class 與 Style 綁定操作方法,需要的朋友可以參考下
    2024-05-05
  • 解決vue 表格table列求和的問題

    解決vue 表格table列求和的問題

    今天小編就為大家分享一篇解決vue 表格table列求和的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 使用elementUI表單校驗函數(shù)validate需要注意的坑及解決

    使用elementUI表單校驗函數(shù)validate需要注意的坑及解決

    這篇文章主要介紹了使用elementUI表單校驗函數(shù)validate需要注意的坑及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Vue實現(xiàn)選擇城市功能

    Vue實現(xiàn)選擇城市功能

    這篇文章主要介紹了Vue實現(xiàn)選擇城市功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-05-05
  • vue實現(xiàn)前端保持篩選條件到url并進(jìn)行同步參數(shù)設(shè)計

    vue實現(xiàn)前端保持篩選條件到url并進(jìn)行同步參數(shù)設(shè)計

    這篇文章主要為大家介紹了vue實現(xiàn)前端保持篩選條件到url并進(jìn)行同步參數(shù)設(shè)計思路詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • vuex刷新頁面丟失登錄token信息的解決方案

    vuex刷新頁面丟失登錄token信息的解決方案

    本文主要介紹了vuex刷新頁面丟失登錄token信息的解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • vue-cli的eslint相關(guān)用法

    vue-cli的eslint相關(guān)用法

    本篇文章主要介紹了vue-cli的eslint相關(guān)用法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09

最新評論

聂荣县| 邢台市| 东乌珠穆沁旗| 溧阳市| 正安县| 台中市| 承德市| 革吉县| 曲靖市| 新乡市| 塘沽区| 四会市| 元氏县| 台南市| 屯昌县| 昆山市| 清涧县| 东阳市| 孟连| 通山县| 崇义县| 沧州市| 桐庐县| 房山区| 丰顺县| 元阳县| 太仆寺旗| 离岛区| 六安市| 天气| 宁津县| 宜君县| 焉耆| 封开县| 区。| 建始县| 县级市| 桓仁| 莱阳市| 惠来县| 十堰市|