有些業(yè)務(wù)場(chǎng)景需要導(dǎo)出excel表格瞪浸,尋常這類需求其實(shí)是服務(wù)端完成,但是前端也有可以實(shí)現(xiàn)這類需求的庫(kù),這里我介紹最近使用過(guò)的三個(gè)庫(kù)。
通用電子表格格式(CSF)
單元地址對(duì)象存儲(chǔ)為{c:C, r:R},C和R是列號(hào)和行號(hào)钓觉。例如茴肥,單元格地址B5由單元地址對(duì)象表示{c:1, r:4}。
單元格范圍對(duì)象存儲(chǔ)為范圍{s:S, e:E}荡灾,其中S表示第一個(gè)單元格瓤狐,E表示最后一個(gè)單元格。例如批幌,范圍A3:B7由單元格范圍對(duì)象表示{s:{c:0, r:2}, e:{c:1, r:6}}
特殊工作表鍵(可通過(guò)sheet[key]進(jìn)行訪問础锐,每個(gè)以!開頭):
- sheet['!ref']:代表圖紙范圍。與圖紙一起使用的功能應(yīng)使用此參數(shù)來(lái)確定范圍荧缘。分配超出范圍的單元格將不被處理皆警。當(dāng)遇到顯示不出來(lái)內(nèi)容時(shí),請(qǐng)檢查范圍是否正確
- sheet['!margins']:代表頁(yè)邊距的對(duì)象截粗。默認(rèn)值遵循Excel的“常規(guī)”預(yù)設(shè)信姓。Excel還具有“寬”和“窄”預(yù)設(shè),但它們存儲(chǔ)為原始測(cè)量值绸罗。
- sheet['!cols']:列屬性對(duì)象的數(shù)組意推。列寬實(shí)際上是以規(guī)范化的方式存儲(chǔ)在文件中的,以“最大位數(shù)寬度”(呈示的數(shù)字0-9的最大寬度珊蟀,以像素為單位)衡量菊值。解析后,列對(duì)象將在wpx字段中存儲(chǔ)像素寬度育灸,在字段中存儲(chǔ)字符寬度以及在wch字段中存儲(chǔ)最大位數(shù)MDW腻窒。
- sheet['!rows']:行屬性對(duì)象的數(shù)組,如文檔稍后所述磅崭。每個(gè)行對(duì)象對(duì)包括行高和可見性的屬性進(jìn)行編碼定页。
- sheet['!merges']:與工作表中相對(duì)應(yīng)的范圍對(duì)象數(shù)組合并單元格。純文本格式不支持合并單元格绽诚。
SheetJS
sheetJS官網(wǎng)
sheetJS--github
優(yōu)點(diǎn):有很多實(shí)用方便的方法和格式轉(zhuǎn)換
缺點(diǎn):調(diào)整樣式只有付費(fèi)版可以修改
工具方法:
aoa_to_sheet 將JS數(shù)據(jù)數(shù)組轉(zhuǎn)換為工作表典徊。
json_to_sheet 將JS對(duì)象數(shù)組轉(zhuǎn)換為工作表。
table_to_sheet 將DOM TABLE元素轉(zhuǎn)換為工作表恩够。
sheet_add_aoa 將JS數(shù)據(jù)數(shù)組添加到現(xiàn)有工作表中卒落。
sheet_add_json 將JS對(duì)象數(shù)組添加到現(xiàn)有工作表中。
sheet_to_json 將工作表對(duì)象轉(zhuǎn)換為JSON對(duì)象數(shù)組蜂桶。
sheet_to_csv 生成定界符分隔值輸出儡毕。
sheet_to_txt 生成UTF16格式的文本。
sheet_to_html 生成HTML輸出。
sheet_to_formulae 生成公式列表(具有值后備)腰湾。
具體合并單元格的例子請(qǐng)參考 純前端利用 js-xlsx 之合并單元格(3)
xlsx-style
xlsx-style地址
此項(xiàng)目是原始SheetJS / xlsx項(xiàng)目的分支雷恃。
但是并沒有隨著SheetJS更新而更新,所以有很多現(xiàn)有的SheetJS的實(shí)用工具方法這個(gè)插件里都沒有费坊。但是優(yōu)點(diǎn)是可以導(dǎo)出excel樣式并且不用付費(fèi)
工具減少成了這些:
sheet_to_json 將工作簿對(duì)象轉(zhuǎn)換為JSON對(duì)象數(shù)組倒槐。
sheet_to_csv 生成定界符分隔值輸出
sheet_to_formulae 生成公式列表(具有值后備)
這個(gè)插件也是可以合并單元格的,所以如果不是很復(fù)雜的數(shù)據(jù)轉(zhuǎn)換成excel附井,并且又需要樣式調(diào)整的讨越,可以選擇這個(gè)插件。
具體調(diào)整樣式例子請(qǐng)參考 純前端利用 js-xlsx 之單元格樣式(4)
LAY-EXCEL
這是一個(gè)改造最新 JS-XLSX 讓其支持樣式設(shè)置的插件永毅,可以說(shuō)是集合了JS-XLSX的所有優(yōu)點(diǎn)把跨,也克服了缺點(diǎn)(樣式調(diào)整需要付費(fèi))的插件,博主原文在這里:
令最新JS-XLSX支持樣式的改造方法
文檔:
LAY-EXCEL 簡(jiǎn)單快捷的導(dǎo)出插件