天天看点

js导出xlsx表格文件

<button type="button" onclick="tableToExcel('item','data')">导出</button>
<table id="item">
    <tr>
        <th>编号</th>
        <th>姓名</th>
        <th>年龄</th>
    </tr>
    <tr>
        <td>1</td>
        <td>小明</td>
        <td>19</td>
    </tr>
    <tr>
        <td>2</td>
        <td>小芳</td>
        <td>20</td>
    </tr>
    <tr>
        <td>3</td>
        <td>大军</td>
        <td>22</td>
    </tr>
</table>
           
function base64 (content) {
            return window.btoa(unescape(encodeURIComponent(content)));
        }
        /*
        *@tableId: table的Id
        *@fileName: 要生成excel文件的名字(不包括后缀,可随意填写)
        */
        function tableToExcel(tableID,fileName){
            var table = document.getElementById(tableID);
            var excelContent = table.innerHTML;
            var excelFile = "<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'>";
            excelFile += "<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>";
            excelFile += "<meta charset='UTF-8'><body><table>";
            excelFile += excelContent;
            excelFile += "</table></body>";
            excelFile += "</html>";
            var link = "data:application/vnd.ms-excel;base64," + base64(excelFile);
            var a = document.createElement("a");
            a.download = fileName+".xls";
            a.href = link;
            a.click();
        }
           

继续阅读