導(dǎo)入數(shù)據(jù)觀察數(shù)據(jù)格式
1.1.我們先創(chuàng)建一個(gè)具有合并單元格的xlsx表格
就以表頭數(shù)據(jù)合并示例吧:
示例
1.2.寫個(gè)簡單的數(shù)據(jù)導(dǎo)入功能(你可以參考前言中的文章編寫,我就不放代碼了)
導(dǎo)入xlsx參考數(shù)據(jù)格式:
示例
1.3.查看官網(wǎng)說明
官網(wǎng)示例(http://sheetjs.com/demos/modify.html):
官網(wǎng)示例
根據(jù)官網(wǎng)說明我們簡單看出合并單元格的數(shù)據(jù)格式是:
........ data["!merges"] = [{ s: {//s為開始 c: 1,//開始列 r: 0//可以看成開始行,實(shí)際是取值范圍 }, e: {//e結(jié)束 c: 4,//結(jié)束列 r: 0//結(jié)束行 } }]; ........
2.動手實(shí)驗(yàn)
2.1.寫個(gè)簡單的導(dǎo)出demo
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title></title></head><body> <script src="http://oss.sheetjs.com/js-xlsx/xlsx.full.min.js"></script> <!--調(diào)用FileSaver saveAs函數(shù)可以實(shí)現(xiàn)文件下載--> <!--<script src="http://sheetjs.com/demos/Blob.js"></script> <script src="http://sheetjs.com/demos/FileSaver.js"></script>--> <script> //如果使用 FileSaver.js 就不要同時(shí)使用以下函數(shù) function saveAs(obj, fileName) {//當(dāng)然可以自定義簡單的下載文件實(shí)現(xiàn)方式 var tmpa = document.createElement("a"); tmpa.download = fileName || "下載"; tmpa.href = URL.createObjectURL(obj); //綁定a標(biāo)簽 tmpa.click(); //模擬點(diǎn)擊實(shí)現(xiàn)下載 setTimeout(function () { //延時(shí)釋放 URL.revokeObjectURL(obj); //用URL.revokeObjectURL()來釋放這個(gè)object URL }, 100); } var jsono = [{ //測試數(shù)據(jù) "id": 1,//A "合并的列頭1": "數(shù)據(jù)11",//B "合并的列頭2": "數(shù)據(jù)12",//C "合并的列頭3": "數(shù)據(jù)13",//D "合并的列頭4": "數(shù)據(jù)14",//E }, { "id": 2, "合并的列頭1": "數(shù)據(jù)21", "合并的列頭2": "數(shù)據(jù)22", "合并的列頭3": "數(shù)據(jù)23", "合并的列頭4": "數(shù)據(jù)24", }];//.... const wopts = { bookType: 'xlsx', bookSST: true, type: 'binary' };//這里的數(shù)據(jù)是用來定義導(dǎo)出的格式類型 function downloadExl(data, type) { var wb = { SheetNames: ['Sheet1'], Sheets: {}, Props: {} }; //wb.Sheets['Sheet1'] = XLSX.utils.json_to_sheet(data);//通過json_to_sheet轉(zhuǎn)成單頁(Sheet)數(shù)據(jù) data = XLSX.utils.json_to_sheet(data); data["B1"] = { t: "s", v: "asdad" }; data["!merges"] = [{//合并第一行數(shù)據(jù)[B1,C1,D1,E1] s: {//s為開始 c: 1,//開始列 r: 0//開始取值范圍 }, e: {//e結(jié)束 c: 4,//結(jié)束列 r: 0//結(jié)束范圍 } }]; wb.Sheets['Sheet1'] = data; saveAs(new Blob([s2ab(XLSX.write(wb, wopts))], { type: "application/octet-stream"}), "這里是下載的文件名" + '.' + (wopts.bookType == "biff2" ? "xls" : wopts.bookType)); } function s2ab(s) { if (typeof ArrayBuffer !== 'undefined') { var buf = new ArrayBuffer(s.length); var view = new Uint8Array(buf); for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF; return buf; } else { var buf = new Array(s.length); for (var i = 0; i != s.length; ++i) buf[i] = s.charCodeAt(i) & 0xFF; return buf; } } </script> <button onclick="downloadExl(jsono)">導(dǎo)出</button></body></html>
相信看了本文案例你已經(jīng)掌握了方法,更多精彩請關(guān)注Gxl網(wǎng)其它相關(guān)文章!
相關(guān)閱讀:
如何使用s-xlsx實(shí)現(xiàn)Excel 文件導(dǎo)入和導(dǎo)出(下)
如何使用s-xlsx實(shí)現(xiàn)Excel 文件導(dǎo)入和導(dǎo)出(上)
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com