基于 element-ui 表格組件 el-table 導出表格數據

方法一:前端處理,直接導出 e-table 組件的表格數據

import XLSX from 'xlsx';/*** el-table 表格導出* @param {*} idSelector id選擇器* @param {*} name 導出表格名稱* @param {*} remove 表格是否存在左/右固定列,存在則傳入true,反之false* @param {*} bookType 表格文件后綴* @returns */
export const _exportExcel = (idSelector, name, remove = false, bookType = 'xlsx') => {/* generate workbook object from table */var xlsxParam = { raw: true } // 導出的內容只做解析,不進行格式轉換var table = document.querySelector(idSelector).cloneNode(true);// 如果有設置固定列,需要移除對應元素,否則會同時生成多張列表if (remove) {try {table.removeChild(table.querySelector('.el-table__fixed-left'));table.removeChild(table.querySelector('.el-table__fixed-right')); //這里是雙下劃線} catch(err) {}}var wb = XLSX.utils.table_to_book(table, xlsxParam);/* get binary string as output */// 寫入數據var wbout = XLSX.write(wb, { bookType, bookSST: true, type: 'array' });// 下載生成excel--參照方法二downloadXls(wbout, `${name}.${bookType}`);return wbout
}

方法二:請求后端接口,返回blob文件流

/** * 注:若接口請求頭有帶文件名稱返回,* 且服務端在header設置Access-Control-Expose-Headers: Content-Disposition,* 則前端無需自定義生成的文件名* const contentDisposition = res.headers['content-disposition'] // res 接口請求response數據* fileName: contentDisposition ? decodeURIComponent(contentDisposition.split('filename=')[1]) : '',*//*** 下載excel* @param {blob} fileArrayBuffer 文件流* @param {String} filename 文件名稱*/
export const downloadXls = (fileArrayBuffer, filename) => {let data = new Blob([fileArrayBuffer], { type: 'application/vnd.ms-excel,charset=utf-8' });if (typeof window.chrome !== 'undefined') {// Chromevar link = document.createElement('a');link.href = window.URL.createObjectURL(data);link.download = filename;link.click();} else if (typeof window.navigator.msSaveBlob !== 'undefined') {// IEvar blob = new Blob([data], { type: 'application/force-download' });window.navigator.msSaveBlob(blob, filename);} else {// Firefoxvar file = new File([data], filename, { type: 'application/force-download' });window.open(URL.createObjectURL(file));}
};

拓展:

js 實現純前端將數據導出excel兩種方式

前端配合后端接口導出excel表格

前端導出excel表格打不開的情況

vue axios下載excel時獲取不到返回的消息頭Content-Disposition

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/10500.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/10500.shtml
英文地址,請注明出處:http://en.pswp.cn/web/10500.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在MyBatis中,如何將數據庫中的字符串類型映射為枚舉類型?

在MyBatis中,如何將數據庫中的字符串類型映射為枚舉類型? 網上看了很多教程。說了很多,但是都沒說到重點! 很簡單,xml文件中, 使用resultType,而不是使用resultMap就可以了。 resultType"…

用HAL庫改寫江科大的stm32入門例子8-1 DMA數據轉運

實驗1-實驗目的:通過DMA把buffer的數據搬運到buffer2當中。 //declare a buffer to store the data uint32_t buffer[3] {1,2,3};//declare a buffer to store the data uint32_t buffer2[3] {0,0,0}; DMA:是個搬運數據的小助手。 相關設置&#xff1…

Baidu Comate:釋放編碼潛能,革新軟件開發

Baidu Comate Baidu Comate,智能代碼助手,憑借著文心大模型的強大支撐,結合了百度多年的編程實戰數據和豐富的開源資源,形成了一款嶄新的編碼輔助利器。它不僅具備著高智能、多場景、價值創造的特質,更可廣泛應用于各…

實物仿真平臺設計方案:927-8路GMSL視頻注入回灌的自動駕駛半實物仿真平臺

8路GMSL視頻注入回灌的自動駕駛半實物仿真平臺 一、平臺介紹 產品基于8路GMSL視頻注入回灌的自動駕駛半實物仿真平臺旨在提高實驗室及研究生院師生在基礎軟件層開發、計算機視覺和深度學習方面的專業知識學習和實踐能力,為師生提供一個穩定軟件開發和多精度框…

匯編個位數求和實驗

title: 匯編求和實驗 keywords: 匯編 tags: [匯編] categories: 嵌入式 匯編求和實驗 剛開始學習匯編 給大家做個參考 實驗 5 子程序 5.1 實驗目的 ①掌握利用堆棧傳遞參數的子程序調用方法。 ②過程調用偽指令:PROC,ENDP,NEAR和FAR。 ③8088…

神經網絡權重初始化學習

在神經網絡中,權重初始化是一個關鍵步驟,它影響著模型的訓練效率和最終性能。使用正態分布作為初始值是一種常見且有效的策略,尤其是在深度學習中。 原理 為何使用分布初始化? 如果所有權重初始化為相同的值(如全零初…

hive日常使用時忘記部分補充(不定時)

1、date_formate、unix_timestamp、from_unixtime用法: 2、lag()、lead()用法: lag()窗口函數返回分區中當前行之前行(可以指定第幾行)的值。 如果沒有行,則返回null。 lead()窗口…

pytest + yaml 框架 - 錄制接口轉 yaml 用例實現

pytest yaml 框架基本不用寫 python 代碼,只需寫yaml 文件用例就能實現接口自動化。 現在引入接口錄制功能,連 yaml 文件也不用寫了,點點點就能生成 yaml 用例文件了。 錄制功能在v1.3.4版本上實現 pip instal pytest-yaml-yoyo 環境準備 …

如何使用 ArcGIS Pro 制作地震動畫

在做某些匯報的時候,除了圖文,如果有動畫肯定會成為加分項,這里為大家介紹一下如何使用 ArcGIS Pro 制作地震動畫,希望能對你有所幫助。 添加時間 在圖層屬性內,選擇時間選項卡,圖層時間選擇每個要素具有…

鎵未來助力聯想筆記本GaN適配器標配化,賦能高效用戶體驗

鎵未來賦能筆記本電腦GaN適配器標配化 據悉,Lenovo 2024年推出搭配的多款新型筆記本原裝適配器電源ADL100UDGC3A,采用了鎵未來集成型Cascode技術氮化鎵功率器件G1N65R150PB。新款方案相較上一代工藝,體積減小23%,重量降低18%&…

秋招算法刷題10(棧和隊列)

0509 232.用棧實現隊列 class MyQueue {Deque<Integer> inStack;Deque<Integer> outStack;public MyQueue() {inStack new ArrayDeque<Integer>();outStack new ArrayDeque<Integer>();}public void push(int x) {inStack.push(x);}public int pop…

13.跳躍游戲

文章目錄 題目簡介題目解答解法一&#xff1a;貪心算法&#xff0b;動態規劃代碼&#xff1a;復雜度分析&#xff1a; 題目鏈接 大家好&#xff0c;我是曉星航。今天為大家帶來的是 跳躍游戲面試題 相關的講解&#xff01;&#x1f600; 題目簡介 題目解答 思路&#xff1a;這…

Vue3知識總結-2

目錄 通過key來管理狀態 事件處理 內聯事件處理器 方法事件處理器 事件傳參 獲取event 傳遞參數 傳參的過程中獲取事件對象 事件修飾符 阻止事件描述符 阻止事件冒泡 數組變化偵測 變更方式 替換一個數組 計算屬性 Class綁定 綁定對象 綁定數組 Style綁定 …

【Python 常用腳本及命令系列 3.3 -- Python 統計程序執行時間】

請閱讀【嵌入式開發學習必備專欄】 文章目錄 Python 統計程序執行時間 Python 統計程序執行時間 在Python中&#xff0c;可以使用time模塊來測量執行一個函數所需的時間。以下是一個基本的例子&#xff0c;展示了如何實現這一功能&#xff1a; import time def your_function…

element-plus 工作經驗總結

Element-plus 文章目錄 Element-plus忠告: 最好鎖定版本, 免得更新更出 BUG 來了el-drawer 設置 modal"false" 后, 遮罩元素仍存在, 點不了空白的地方el-tree 大數據量時接收 check-change 事件報錯導致涉及多個節點的操作沒執行完畢el-table 表頭 show-overflow-too…

前端小程序調用 getLocation 實現地圖位置功能,通過 緯度:latitude 經度: longitude 獲取當前位置

1、首先登錄一下 騰訊的位置服務 有賬號就登錄沒賬號就注冊&#xff0c; 點擊右上角的控制臺點擊左側的應用管理 ---> 我的應用 ---->> 創建應用 1、創建應用 2、列表就會顯示我們剛剛創建好的 key 3、點擊添加 key 4、按照要求填寫信息 我們用的是小程序 所以選擇…

二叉樹介紹

引入 定義 區別 定義不同 形態不同 基本形態

AD域服務器巡檢指南

Active Directory (AD) 域服務器的巡檢對于確保企業網絡的安全性和高效運行至關重要。以下是針對AD域服務器巡檢的關鍵活動和其重要性的優化描述&#xff1a; 保證系統安全&#xff1a; AD域服務器儲存大量敏感數據&#xff0c;包括用戶賬戶信息、策略和訪問權限數據。定期巡檢…

windows和 Linux 下通過 QProcess 打開ssh 和vnc

文章目錄 SSHSSH驗證啟動SSH一、口令登錄二、公鑰登錄通過Qprocess 啟動ssh VNC Viewer簡介通過QProcess啟動vncViewer SSH Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在應用層基礎上的**安全網絡協議**。它是專為遠程登錄會話(**甚至可以…

uniapp下拉選擇組件

uniapp下拉選擇組件 背景實現思路代碼實現配置項使用尾巴 背景 最近遇到一個這樣的需求&#xff0c;在輸入框中輸入關鍵字&#xff0c;通過接口查詢到結果之后&#xff0c;以下拉框列表形式展現供用戶選擇。查詢了下uni-app官網和項目中使用的uv-ui庫&#xff0c;沒找到符合條…