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

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

 更新時(shí)間:2025年05月14日 10:12:44   作者:sg_knight  
在日常開(kāi)發(fā)中,Excel導(dǎo)出是管理系統(tǒng)的高頻需求,本文手把手教你如何在Vue項(xiàng)目中快速實(shí)現(xiàn)Excel導(dǎo)出功能,支持復(fù)雜表格樣式,并附贈(zèng)性能優(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>

二、高級(jí)功能拓展

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

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

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

2. 多Sheet頁(yè)導(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)計(jì)表', s: { font: { bold: true, sz: 18 }, alignment: { horizontal: 'center' } } };

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

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

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

2. 前端分頁(yè)導(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({ ... });

四、常見(jiàn)問(wèn)題排雷

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í)踐建議

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

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

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

相關(guān)文章

  • vue實(shí)現(xiàn)移動(dòng)端圖片上傳功能

    vue實(shí)現(xiàn)移動(dòng)端圖片上傳功能

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

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

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

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

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

    vue3 Class 與 Style 綁定操作方法

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

    解決vue 表格table列求和的問(wèn)題

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論

青河县| 安宁市| 云浮市| 汽车| 莱西市| 塘沽区| 延吉市| 额尔古纳市| 眉山市| 郑州市| 丹巴县| 塘沽区| 兰坪| 武夷山市| 印江| 台山市| 凤庆县| 阿克苏市| 永吉县| 台安县| 霍山县| 三门峡市| 巴东县| 铜鼓县| 文登市| 隆安县| 广宁县| 英山县| 大新县| 安泽县| 克拉玛依市| 临江市| 宁南县| 建平县| 萨嘎县| 金阳县| 彰化县| 高安市| 祁连县| 宁远县| 田东县|