• js 实现纯前端将数据导出excel


    <html>
    <head>
      <p style="font-size: 20px;color: red;">使用table标签方式将json导出xls文件</p>
      <button onclick='tableToExcel()'>导出</button>
    </head>
    <body>
      <script>
                
        function tableToExcel(){
          //要导出的json数据
          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>';
          //循环遍历,每行加入tr标签,每个单元格加td标签
          for(let i = 0 ; i < jsonData.length ; i++ ){
            str+='<tr>';
            for(let item in jsonData[i]){
                //增加	为了不让表格显示科学计数法或者其他格式
                str+=`<td>${ jsonData[i][item] + '	'}</td>`;     
            }
            str+='</tr>';
          }
          //Worksheet名
          let worksheet = 'Sheet1'
          let uri = 'data:application/vnd.ms-excel;base64,';
     
          //下载的表格模板数据
          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><!--[if gte mso 9]><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编码
        function base64 (s) { return window.btoa(unescape(encodeURIComponent(s))) }
    </script>
    </body>
    </html>
    

      

  • 相关阅读:
    jquery mobile
    可能用到的负边距应用
    兼容性问题
    less和scss
    函数的继承
    关于canvas
    html5表单属性
    html代码
    git 拉取远程分支 --本地分支不存在
    git 删除分支
  • 原文地址:https://www.cnblogs.com/dolphin-369/p/11528633.html
Copyright © 2020-2023  润新知