要将JavaScript中的表格数据导出为Excel文件,可以使用一些现成的库,如SheetJS(xlsx)。以下是一个简单的示例,展示如何使用SheetJS将HTML表格转换为Excel文件并提供下载链接。
以下是一个完整的示例,展示如何将HTML表格导出为Excel文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Export Table to Excel</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.17.5/xlsx.full.min.js"></script>
</head>
<body>
<table id="myTable" border="1">
<thead>
<tr>
<th>Name</th>
<th>Age</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<tr>
<td>John Doe</td>
<td>30</td>
<td>john@example.com</td>
</tr>
<tr>
<td>Jane Smith</td>
<td>25</td>
<td>jane@example.com</td>
</tr>
</tbody>
</table>
<button onclick="exportTableToExcel('myTable', 'my-table-data')">Export to Excel</button>
<script>
function exportTableToExcel(tableID, filename = ''){
var downloadLink;
var dataType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';
var tableSelect = document.getElementById(tableID);
var workbook = XLSX.utils.table_to_book(tableSelect, {sheet:"Sheet1"});
var excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
var data = new Blob([excelBuffer], {type: dataType});
var url = window.URL.createObjectURL(data);
filename = filename?filename+'.xlsx':'excel_data.xlsx';
downloadLink = document.createElement("a");
document.body.appendChild(downloadLink);
if(navigator.msSaveOrOpenBlob) {
navigator.msSaveOrOpenBlob(data, filename);
} else {
downloadLink.href = url;
downloadLink.download = filename;
downloadLink.click();
}
window.URL.revokeObjectURL(url);
document.body.removeChild(downloadLink);
}
</script>
</body>
</html>
exportTableToExcel
函数。XLSX.utils.table_to_book
将表格转换为工作簿对象。XLSX.write
将工作簿对象转换为Excel文件的二进制数据。navigator.msSaveOrOpenBlob
处理IE浏览器的特殊情况。.xlsx
)。通过以上步骤,你可以轻松地将HTML表格导出为Excel文件,并提供下载链接。
领取专属 10元无门槛券
手把手带您无忧上云