前端表格导出 再次修复、

长数字导出后 会在execl里面自动转成成数组 会出现1E+31 类似的现象   长数字字符串会导致四舍五入

一共找到2中比较好的方法, 由于第一个导出方法 所见即所得,宽度也比较好控制,所以大部分都是第一个  大数据量的时候 才会用第二个插件

在表格中 添加  则可以解决 则表格会认为是字符串

借用别人的代码

<!DOCTYPE html>  
<html>  
<head>  
    <meta charset="utf-8">  
    <title></title>  
    <link rel="stylesheet" type="text/css" href="css/bootstrap.css">  
</head>  
<body>  
    <table id="tableExcel" width="100%" class="table table-hover" >    
    <tr>    
        <td colspan="5" align="center">html 表格导出道Excel</td>    
    </tr>    
    <tr>    
        <td>列标题1</td>    
        <td>列标题2</td>    
        <td>类标题3</td>    
        <td>列标题4</td>    
        <td>列标题5</td>    
    </tr>    
    <tr>    
        <td>aaa</td>    
        <td>bbb</td>    
        <td>ccc</td>    
        <td>ddd</td>    
        <td>eee</td>    
    </tr>    
    <tr>    
        <td>AAA</td>    
        <td>BBB</td>    
        <td>CCC</td>    
        <td>DDD</td>    
        <td>EEE</td>    
    </tr>    
    <tr>    
        <td>FFF</td>    
        <td>GGG</td>    
        <td>HHH</td>    
        <td>III</td>    
        <td>JJJ</td>    
    </tr>    
</table>  
    <a id="dlink"  style="display:none;"></a>  
<input type="text" name="" value="请输入文件名" class="center-block form-control" style="margin-bottom: 20px; text-align: center" id="submit" onclick="submt()">      
<input type="button" class="btn btn-primary center-block" onclick="tableToExcel('tablename', 'name', 'zhangsan.xls')" value="Export to Excel">  
</body>  
<script>  
    var nnn = "";  
    function submt(){  
        document.getElementById('submit').value="";  
    }  
      
    var tableToExcel = (function () {  
        var uri = 'data:application/vnd.ms-excel;base64,'  
        , 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>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>'  
        , base64 = function (s) { return window.btoa(unescape(encodeURIComponent(s))) }  
        , format = function (s, c) { return s.replace(/{(\w+)}/g, function (m, p) { return c[p]; }) }  
        return function (table, name) {  
            if (!table.nodeType) table = document.getElementById("tableExcel")  
            var ctx = { worksheet: name || 'Worksheet', table: table.innerHTML }  
  
            document.getElementById("dlink").href = uri + base64(format(template, ctx));  
            document.getElementById("dlink").download = document.getElementById('submit').value+'.xls';  
            document.getElementById("dlink").click();  
  
        }  
    })()  
</script>  
</html>  

  

 以上的这个xml的导出方法 有字符串的长度限制 在列多的时候 400~500条就挂了  
于是 有找到另一个能处理比较大数据的导出插件  js-export-excel github找到对应的链接
 
 
posted @ 2018-04-13 14:17  V黑匣子  阅读(138)  评论(0编辑  收藏  举报