成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

javascript實(shí)現(xiàn)純前端將數(shù)據(jù)導(dǎo)出excel兩種方式

3403771864 / 585人閱讀

       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

相關(guān)文章

  • 使用 SpreadJS 實(shí)現(xiàn) JavaScript 中導(dǎo)入和導(dǎo)出Excel文件

    摘要:而作為一款深受用戶喜愛(à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)的電...

    Jioby 評(píng)論0 收藏0
  • 前端實(shí)現(xiàn)excel表格導(dǎo)入導(dǎo)出

    摘要:使用時(shí),前端可以將后端返回的數(shù)據(jù)拼接成自己需要導(dǎo)出的格式,下載到電腦中,完全不依賴后端。 前言 github: https://github.com/stardew516... 以往做excel表格下載功能的時(shí)候,都是后端生成好表格后,存儲(chǔ)在某個(gè)地方,然后給前端一個(gè)鏈接,前端使用a標(biāo)簽加download下載,或者使用node。其實(shí)純前端也是可以做表格下載的,有一個(gè)很好用的javascr...

    CoyPan 評(píng)論0 收藏0
  • 前端開(kāi)發(fā)案例:用 SpreadJS 搭建信息系統(tǒng)軟件開(kāi)發(fā)平臺(tái)

    摘要:葡萄城的是一個(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 ...

    Heier 評(píng)論0 收藏0
  • XCel 項(xiàng)目總結(jié) - Electron 與 Vue 的性能優(yōu)化

    摘要:而這里的單元格信息是唯一的,所以直接通過(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...

    XUI 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<