在Web開(kāi)發(fā)中,部分功能需要將數(shù)據(jù)以CSV格式導(dǎo)出,如表格導(dǎo)出、統(tǒng)計(jì)報(bào)表等。那么如何使用JavaScript生成CSV呢?下面介紹一種簡(jiǎn)單的實(shí)現(xiàn)方法。
在HTML頁(yè)面中,我們可以通過(guò)點(diǎn)擊按鈕等觸發(fā)事件來(lái)生成CSV。大致實(shí)現(xiàn)思路是:先將需要導(dǎo)出的數(shù)據(jù)按照CSV格式拼接成字符串,再使用Blob對(duì)象和URL.createObjectURL()方法將其轉(zhuǎn)換為一個(gè)可被瀏覽器下載的文件。下面看看具體實(shí)現(xiàn)。
第一步,定義一個(gè)事件函數(shù),用于生成CSV:
<script> function downloadCSV() { // 1.準(zhǔn)備數(shù)據(jù) var headers = ["姓名", "年齡", "性別"]; var rows = [ ["張三", 25, "男"], ["李四", 30, "男"], ["小紅", 22, "女"] ]; // 2.轉(zhuǎn)換數(shù)據(jù)為CSV格式 var csvContent = "data:text/csv;charset=utf-8," + headers.join(",") + "\n" + rows.map(row =>row.join(",")).join("\n"); // 3.創(chuàng)建一個(gè)Blob對(duì)象 var blob = new Blob([csvContent], { type: "text/csv;charset=utf-8" }); // 4.創(chuàng)建下載鏈接并觸發(fā)下載 var link = document.createElement("a"); link.href = URL.createObjectURL(blob); link.download = "export.csv"; document.body.appendChild(link); link.click(); document.body.removeChild(link); } </script>上述代碼中,headers是表頭列,rows為每一行數(shù)據(jù)。將headers和rows拼接為CSV格式的字符串,并使用Blob對(duì)象將其轉(zhuǎn)換為可下載文件,最后創(chuàng)建一個(gè)下載鏈接并自動(dòng)觸發(fā)下載。 在HTML部分,可以通過(guò)調(diào)用上述函數(shù)來(lái)生成CSV。
<button onclick="downloadCSV()">導(dǎo)出CSV文件</button>通過(guò)點(diǎn)擊按鈕,即可下載名為export.csv的CSV文件。 以上是使用JavaScript生成CSV的一個(gè)簡(jiǎn)單示例,具體實(shí)現(xiàn)可以根據(jù)需要進(jìn)行靈活調(diào)整。