javascript實(shí)現(xiàn)純前端將數(shù)據(jù)導(dǎo)出excel是有兩種方式,現(xiàn)在就為大家介紹:
方法一
將table標(biāo)簽,包括tr、td等對(duì)json數(shù)據(jù)進(jìn)行拼接,直接在table的表格上體現(xiàn)出,但此方法的弊端在于輸出的是偽excel,即使是生成xls為后綴的文件,可文件形式上還是html,
代碼如下:
<html> <head> <pstyle="font-size:20px;color:red;">使用table標(biāo)簽方式將json導(dǎo)出xls文件</p> <buttononclick='tableToExcel()'>導(dǎo)出</button> </head> <body> <script> consttableToExcel=()=>{ //要導(dǎo)出的json數(shù)據(jù) constjsonData=[ { name:'路人甲', phone:'123456', email:'[email protected]' }, { name:'炮灰乙', phone:'123456', email:'[email protected]' }, { name:'土匪丙', phone:'123456', email:'[email protected]' }, { name:'流氓丁', phone:'123456', email:'[email protected]' }, ] //列標(biāo)題 letstr='<tr><td>姓名</td><td>電話</td><td>郵箱</td></tr>'; //循環(huán)遍歷,每行加入tr標(biāo)簽,每個(gè)單元格加td標(biāo)簽 for(leti=0;i<jsonData.length;i++){ str+='<tr>'; for(constkeyinjsonData[i]){ //增加 為了不讓表格顯示科學(xué)計(jì)數(shù)法或者其他格式 str+=`<td>${jsonData[i][key]+' '}</td>`; } str+='</tr>'; } //Worksheet名 constworksheet='Sheet1' consturi='data:application/vnd.ms-excel;base64,'; //下載的表格模板數(shù)據(jù) consttemplate=`<htmlxmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"> <head><!--[ifgtemso9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet> <x:Name>${worksheet}</x:Name> <x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet> </x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--> </head><body><table>${str}</table></body></html>`; //下載模板 window.location.href=uri+base64(template); }; //輸出base64編碼 constbase64=s=>window.btoa(unescape(encodeURIComponent(s))); </script> </body> </html>
導(dǎo)出的文件后綴是xls,用office打開(kāi)的時(shí)候不太友好?,F(xiàn)在就說(shuō)說(shuō)第二種方式吧。
方法二
通過(guò)將json遍歷進(jìn)行字符串拼接,將字符串輸出到csv文件,代碼如下:
<html> <head> <pstyle="font-size:20px;color:red;">使用a標(biāo)簽方式將json導(dǎo)出csv文件</p> <buttononclick='tableToExcel()'>導(dǎo)出</button> </head> <body> <script> consttableToExcel=()=>{ //要導(dǎo)出的json數(shù)據(jù) constjsonData=[ { name:'路人甲', phone:'123456789', email:'[email protected]' }, { name:'炮灰乙', phone:'123456789', email:'[email protected]' }, { name:'土匪丙', phone:'123456789', email:'[email protected]' }, { name:'流氓丁', phone:'123456789', email:'[email protected]' }, ]; //列標(biāo)題,逗號(hào)隔開(kāi),每一個(gè)逗號(hào)就是隔開(kāi)一個(gè)單元格 letstr=`姓名,電話,郵箱 `; //增加 為了不讓表格顯示科學(xué)計(jì)數(shù)法或者其他格式 for(leti=0;i<jsonData.length;i++){ for(constkeyinjsonData[i]){ str+=`${jsonData[i][key]+' '},`; } str+=' '; } //encodeURIComponent解決中文亂碼 consturi='data:text/csv;charset=utf-8,ufeff'+encodeURIComponent(str); //通過(guò)創(chuàng)建a標(biāo)簽實(shí)現(xiàn) constlink=document.createElement("a"); link.href=uri; //對(duì)下載的文件命名 link.download="json數(shù)據(jù)表.csv"; link.click(); } </script> </body> </html>
上邊的兩段代碼復(fù)制即可用。
上述就是javascript實(shí)現(xiàn)純前端將數(shù)據(jù)導(dǎo)出excel兩種方式全部?jī)?nèi)容,希望大家可以學(xué)習(xí)帶更多。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/127741.html
摘要:而作為一款深受用戶喜愛(ài)的電子表格工具,借助其直觀的界面出色的計(jì)算性能和圖表工具,已經(jīng)成為數(shù)據(jù)統(tǒng)計(jì)領(lǐng)域不可或缺的軟件之一。使用實(shí)現(xiàn)的導(dǎo)入和導(dǎo)出通過(guò)純,您完全可以實(shí)現(xiàn)導(dǎo)入和導(dǎo)出文件功能,并為最終用戶提供與這些文件進(jìn)行交互的界面。 JavaScript是一個(gè)涵蓋多種框架、直譯式、可以輕松自定義客戶端的腳本語(yǔ)言,在 Web 應(yīng)用程序中,更加易于編碼和維護(hù)。而Excel 作為一款深受用戶喜愛(ài)的電...
摘要:使用時(shí),前端可以將后端返回的數(shù)據(jù)拼接成自己需要導(dǎo)出的格式,下載到電腦中,完全不依賴后端。 前言 github: https://github.com/stardew516... 以往做excel表格下載功能的時(shí)候,都是后端生成好表格后,存儲(chǔ)在某個(gè)地方,然后給前端一個(gè)鏈接,前端使用a標(biāo)簽加download下載,或者使用node。其實(shí)純前端也是可以做表格下載的,有一個(gè)很好用的javascr...
摘要:葡萄城的是一個(gè)基于技術(shù)的純控件,控件性能流暢,有類(lèi)似的在線表格編輯器,適合非專(zhuān)業(yè)程序員設(shè)計(jì)報(bào)表模板,很符合平臺(tái)部分無(wú)編碼開(kāi)發(fā)的理念。葡萄城控件產(chǎn)品對(duì)于項(xiàng)目的價(jià)值控件主要用于本項(xiàng)目中的報(bào)表設(shè)計(jì),展示,打印等功能。 showImg(https://segmentfault.com/img/bVbalYk?w=1000&h=400); 華閩通達(dá) - R 平臺(tái)應(yīng)用所使用產(chǎn)品:SpreadJS ...
摘要:而這里的單元格信息是唯一的,所以直接通過(guò)為一個(gè)空對(duì)象賦值即可。和相關(guān)的知識(shí)和技巧高亮的列單元格采用展示。在中,被選中的單元格會(huì)高亮相應(yīng)的行和列,以提醒用戶。 showImg(https://segmentfault.com/img/bVGkdk?w=900&h=500); XCEL 是一個(gè) Excel 數(shù)據(jù)清洗工具,其通過(guò)可視化的方式讓用戶輕松地對(duì) Excel 數(shù)據(jù)進(jìn)行篩選。 XCEL...
閱讀 570·2023-03-27 18:33
閱讀 761·2023-03-26 17:27
閱讀 658·2023-03-26 17:14
閱讀 612·2023-03-17 21:13
閱讀 546·2023-03-17 08:28
閱讀 1836·2023-02-27 22:32
閱讀 1330·2023-02-27 22:27
閱讀 2212·2023-01-20 08:28