前端開發篇之一 Excel匯出方法彙總

2021-10-10 13:05:11 字數 2550 閱讀 6014

2、使用方法

頁面引用 excel.min.js 檔案

src=

"/js/excel.min.js"

>

script

>

var resdata = ojson.keyvalue;

//設定excel表頭標題

var titlearr =

['裝置區域'

,'間隔'

,'裝置名'

,'裝置型別'

,'相位'

,'巡檢點名稱'

,'識別型別'

,'儀表型別'

,'告警型別'

,'單位'

,'紅外檢測面'

,'致熱型別'

,'紅外診斷型別'

,'危機告警(值)'

,'危急警告運算子'

,'嚴重告警(值)'

,'嚴重告警運算子'

,'一般警告(值)'

,'一般警告運算子'

,'預警值'

,'預警運算子'

,'正常(值)'

,'正常運算子'];

titlerow =

;for

(var item in titlearr )

resdata.

unshift

(titlerow)

;var data =

lay_excel

.filterexportdata

(resdata, titlearr )

;//執行匯出

lay_excel

.exportexcel(,

'deviceinfo.xlsx'

,'xlsx'

);

3、官方使用方法

由於外掛程式規模擴大和功能的增加,導致外掛程式上手難度有一定的增加。但如果只使用核心功能,其實沒有必要去研究外掛程式的所有方法,故在此把此外掛程式解決核心需求的方法展示出來。

試一試:一句話匯出 hello world

lay_excel.exportexcel([['hello', 'world', '!']], 'hello.xlsx', 'xlsx')
ps:這個就是核心的匯出功能,第乙個引數是乙個二維陣列,第二個引數是匯出檔名,第三個引數是檔案型別,是不是特別簡潔,有一定js基礎的童鞋相信一眼就能看懂!下面繼續介紹如何與 ajax 結合,匯出後端給到的資料。

第一步:從後台獲取需要匯出的資料

一般的匯出場景是後端給出獲取資料的介面,前端請求後端介面後,根據介面返回引數匯出,所以需要 $.ajax() 非同步請求介面資料

$.ajax(, ]

}});

如果使用layuiadmin,則只需要將外掛程式(layui_exts/excel.js)放到controller/下,然後layui.use即可,或者可以放在lib/extend中,只不過需要改config.js

layui專案,非layuiadmin的外掛程式初始化如下:

layui.config().extend();
ps:現已支援直接引入js檔案的方式載入外掛程式,然後通過 lay_excel 全域性變數呼叫相關函式了,非layui或者不熟悉layui的外掛程式載入機制的童鞋可以在html檔案中通過 script 標籤引入,如:

src="../../layui_exts/excel.js">

script>

lay_excel.exportexcel([[1, 2, 3]], '**匯出.xlsx', 'xlsx')

script>

第三步:手工新增乙個表頭,呼叫匯出excel的內部函式
非layui框架請直接使用 $.ajax 和 lay_excel 進行非同步操作和匯出

!!!注意:無論單元格是否空白,在呼叫 exportexcel 之前每一行的 key 必須順序相同且數量一致,否則容易出現錯位、樣式渲染異常等情況!!!

layui.use(['jquery', 'excel', 'layer'], function() , ]

// 1. 陣列頭部新增表頭

res.data.unshift();

// 2. 如果需要調整順序,請執行梳理函式

var data = excel.filterexportdata(res.data, [

'name',

'***',

'age',

]);// 3. 執行匯出函式,系統會彈出彈框

excel.exportexcel(, '匯出介面資料.xlsx', 'xlsx');

}});

});

未完待續

js 實現純前端將資料匯出excel兩種方式

部落格參考 primary plain click ex 匯出 el button ex 通過post方式匯出檔案 param key 請求定義靜態位址 param data 請求引數 return 返回promise物件 letpostfileexport key,data,params,base...

行為驅動開發之一,推廣篇

上上個周四,我在組裡做了個內部演講,題目是 使用cucumber實現行為驅動開發 考慮到組內成員並不系統的敏捷背景,我是從歷史開始的。扯軟體開發的歷史是我最喜歡的專案之一,大部分搞軟體的讀書讀到歷史基本都跳過去,我卻很喜歡看看那些過往的小故事。所以每次跟人聊起來,我都盡量吹他個昏天黑地,反正也沒人知...

行為驅動開發之一,推廣篇

上上個周四,我在組裡做了個內部演講,題目是 使用cucumber實現行為驅動開發 考慮到組內成員並不系統的敏捷背景,我是從歷史開始的。扯軟體開發的歷史是我最喜歡的專案之一,大部分搞軟體的讀書讀到歷史基本都跳過去,我卻很喜歡看看那些過往的小故事。所以每次跟人聊起來,我都盡量吹他個昏天黑地,反正也沒人知...