您好,登錄后才能下訂單哦!
筆者認(rèn)為,解決問(wèn)題的途徑n種,也有很多組合的使用。我們用Excel導(dǎo)出大量數(shù)據(jù)的時(shí)候,可能會(huì)從服務(wù)器端,但如果數(shù)據(jù)量較小,是不是也可以考慮使用JavaScript就可以輕量級(jí)的導(dǎo)出呢。另外實(shí)際工作中,用戶也會(huì)考慮,所見(jiàn)即所得的導(dǎo)出當(dāng)前見(jiàn)到的內(nèi)容到Excel表格中。
這里,筆者有那么一丟丟感想,像文檔數(shù)據(jù)、文件數(shù)據(jù)、圖片數(shù)據(jù)歸根結(jié)底都是一些數(shù)據(jù)碼,而數(shù)據(jù)碼的解析方式也是分多鐘的,像.html的文件可以用記事本、瀏覽器、編輯工具等打開(kāi)。這里筆者就利用Excel能夠打開(kāi)html文檔,投機(jī)取巧了一把后綴名是.xls哦。
JavaScript導(dǎo)出表格三個(gè)弊端:1、只能導(dǎo)出當(dāng)前頁(yè)面;2、若存在大量數(shù)據(jù),則JavaScript超時(shí)崩潰;3、導(dǎo)出數(shù)據(jù)的同時(shí),不可以做其他事情。因此,一些正式的、大量的數(shù)據(jù)就不要通過(guò)JavaScript生成了,小打小鬧可以哦。
上代碼嘍,筆者親測(cè)哦:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<meta charset="utf-8" />
</head>
<body>
<table border="1">
<caption>游戲級(jí)別統(tǒng)計(jì)表</caption>
<tr>
<th rowspan="2">序號(hào)</th>
<th rowspan="2">游戲號(hào)</th>
<th rowspan="2">姓名</th>
<th rowspan="2">性別</th>
<th rowspan="2">年齡</th>
<th colspan="3">等級(jí)</th>
</tr>
<tr>
<th>lol</th>
<th>cf</th>
<th>dnf</th>
<th>lsd</th>
</tr>
<tr>
<td>1</td>
<td>20180811</td>
<td>RedAnt</td>
<td>男</td>
<td>不詳</td>
<td>80</td>
<td>雙杠一星</td>
<td>80</td>
<td>213</td>
</tr>
<tr>
<td>2</td>
<td>20180812</td>
<td>HoYL</td>
<td>男</td>
<td>不詳</td>
<td>81</td>
<td>雙杠一星</td>
<td>80</td>
<td>999</td>
</tr>
<tr>
<td>2</td>
<td>20180813</td>
<td>Thinking</td>
<td>男</td>
<td>不詳</td>
<td>81</td>
<td>雙杠一星</td>
<td>80</td>
<td>999</td>
</tr>
</table>
<a download="游戲級(jí)別統(tǒng)計(jì)表.xls">導(dǎo)出表格</a>
<script type="text/javascript" src="js/jquery.min.js" ></script>
<script>
$(document).ready(function(){
var now_html = "<html><head><meta charset='utf-8' /></head><body>" + document.getElementsByTagName("table")[0].outerHTML + "</body></html>";
/*outerHTML:獲取整個(gè)table元素的HTML代碼(包括<table>標(biāo)簽),包裝成一個(gè)完整的HTML文檔
charset為urf-8以防止中文亂碼*/
var blob = new Blob([now_html], { type: "application/vnd.ms-excel" });
/*實(shí)例化一個(gè)Blob對(duì)象
* Blob構(gòu)造函數(shù):[now_html]包含文件的數(shù)組
* { type: "application/vnd.ms-excel" }:是包含文件類型屬性的對(duì)象*/
var a = document.getElementsByTagName("a")[0];
//利用URL.createObjectURL()方法為a元素生成blob URL
a.href = URL.createObjectURL(blob);
})
</script>
</body>
</html>
演示效果:
沒(méi)有在所有瀏覽器上都調(diào)試哦,筆者認(rèn)為前端的東西至少適配三種內(nèi)核瀏覽器的。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。