Middle:JS{三、導(dǎo)出xls or csv(沒有處理IE兼容)}

XLS:二進(jìn)制文件只能用Excel打開

CSV: csv是文本文件比較通用

XLS(二進(jìn)制可以打開圖片,視頻等)

 function tableToExcel(){
      //要導(dǎo)出的json數(shù)據(jù)
      const jsonData = [
        {name:'路人甲',phone:'123456',email:'123@123456.com'},
        {name:'炮灰乙', phone:'123456',email:'123@123456.com'},
        {name:'土匪丙',phone:'123456',email:'123@123456.com'},
        {name:'流氓丁',phone:'123456',email:'123@123456.com'},
      ]
      let str = '<tr><td>姓名</td><td>電話</td><td>郵箱</td></tr>';
      for(let i = 0 ; i < jsonData.length ; i++ ){
        str+='<tr>';
        for(let item in jsonData[i]){
            //增加\t為了不讓表格顯示科學(xué)計(jì)數(shù)法或者其他格式
            str+=`<td>${ jsonData[i][item] + '\t'}</td>`;     
        }
        str+='</tr>';
      }
      let uri = 'data:application/vnd.ms-excel;base64,';
      //下載的表格模板數(shù)據(jù)
      let template = `<html xmlns:o="urn:schemas-microsoft-com:office:office" 
      xmlns:x="urn:schemas-microsoft-com:office:excel" 
      xmlns="http://www.w3.org/TR/REC-html40">
      <head><meta charset='UTF-8'><!--[if gte mso 9]>
      <xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>
        <x:Name>Sheet1</x:Name>
        <x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>
        </x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->
        <table>${str}</table></head></html>`;
      window.location.href = uri + base64(template)
    }
    function base64 (s) { 
        return window.btoa(unescape(encodeURIComponent(s)))
    }
//btoa和atob來進(jìn)行Base64轉(zhuǎn)碼和解碼

CSV(文本格式)

 function tableToExcel(){
      const jsonData = [
        {name:'路人甲',phone:'123456789',email:'000@123456.com'},
        {name:'炮灰乙',phone:'123456789',email:'000@123456.com'},
        {name:'土匪丙',phone:'123456789',email:'000@123456.com'},
        {name:'流氓丁',phone:'123456789',email:'000@123456.com'},
      ]
      //列標(biāo)題,逗號(hào)隔開,每一個(gè)逗號(hào)就是隔開一個(gè)單元格
      let str = `姓名,電話,郵箱\n`;
      //增加\t為了不讓表格顯示科學(xué)計(jì)數(shù)法或者其他格式
      for(let i = 0 ; i < jsonData.length ; i++ ){
        for(let item in jsonData[i]){
            str+=`${jsonData[i][item] + '\t'},`;     
        }
        str+='\n';
      }
      str+=`<img src="https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=508387608,2848974022&fm=26&gp=0.jpg"/>`
      //encodeURIComponent解決中文亂碼
      let uri = 'data:text/csv;charset=utf-8,\ufeff' + encodeURIComponent(str);
      //通過創(chuàng)建a標(biāo)簽實(shí)現(xiàn)
      let link = document.createElement("a");
      link.href = uri;
      //對(duì)下載的文件命名
      link.download =  "json數(shù)據(jù)表.csv";
      document.body.appendChild(link);
      link.click();
      document.body.removeChild(link);
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容