鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ 利用js對象Blob導(dǎo)出的excel,有辦法把表格的邊框給浮現(xiàn)出來

利用js對象Blob導(dǎo)出的excel,有辦法把表格的邊框給浮現(xiàn)出來

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <meta charset="utf-8" />
    <style>
        /* 此樣式僅用于瀏覽器頁面效果,Excel不會分離表格邊框,不需要此樣式 */
        table {
            border-collapse: collapse;
        }
    </style>
</head>
<body>
    <!-- 設(shè)置border="1"以顯示表格框線 -->
    <table border="1">
        <!-- caption元素可以生成表標(biāo)題,其單元格列跨度為表格的列數(shù) -->
        <caption>學(xué)生成績表</caption>
        <tr>
            <!-- 可以使用rowspan和colspan來合并單元格 -->
            <th rowspan="2">編號</th>
            <th rowspan="2">學(xué)號</th>
            <th rowspan="2">姓名</th>
            <th rowspan="2">性別</th>
            <th rowspan="2">年齡</th>
            <th colspan="3">成績</th>
        </tr>
        <tr>
            <th>語文</th>
            <th>數(shù)學(xué)</th>
            <th>英語</th>
        </tr>
        <tr>
            <td>1</td>
            <td>2016001</td>
            <td>張三</td>
            <td>男</td>
            <td>13</td>
            <td>85</td>
            <td>94</td>
            <td>77</td>
        </tr>
        <tr>
            <td>2</td>
            <td>2016002</td>
            <td>李四</td>
            <td>女</td>
            <td>12</td>
            <td>96</td>
            <td>84</td>
            <td>89</td>
        </tr>
    </table>
    <a>導(dǎo)出表格</a>

    <script>
        // 使用outerHTML屬性獲取整個table元素的HTML代碼(包括<table>標(biāo)簽),然后包裝成一個完整的HTML文檔,設(shè)置charset為urf-8以防止中文亂碼
        // var html = "<html><head><meta charset='utf-8' /></head><body>" + document.getElementsByTagName("table")[0].outerHTML + "</body></html>";
        var html = document.getElementsByTagName("table")[0].outerHTML;
        // 實例化一個Blob對象,其構(gòu)造函數(shù)的第一個參數(shù)是包含文件內(nèi)容的數(shù)組,第二個參數(shù)是包含文件類型屬性的對象
        var blob = new Blob([html], { type: "application/vnd.ms-excel" });
        var a = document.getElementsByTagName("a")[0];
        // 利用URL.createObjectURL()方法為a元素生成blob URL
        a.href = URL.createObjectURL(blob);
        // 設(shè)置文件名,目前只有Chrome和FireFox支持此屬性
        a.download = "學(xué)生成績表.xls";
    </script>
</body>
</html>

clipboard.png

此時excel表格像空白了一大片。
之所以要用html,是因為我還想控制表格導(dǎo)出來的樣式

回答
編輯回答
不歸路
2018年2月28日 14:10