JavaScript 可以通过多种方式下载 Excel 表格。以下是使用纯 JavaScript 和第三方库(如 SheetJS)的示例。
Excel 表格:一种电子表格文件格式,通常用于存储和管理数据。
SheetJS:一个流行的 JavaScript 库,用于读取和写入多种电子表格格式,包括 Excel 文件(.xlsx 和 .xls)。
function downloadExcel() {
const data = [
['Name', 'Age', 'Email'],
['John Doe', 30, 'john@example.com'],
['Jane Smith', 25, 'jane@example.com']
];
const csvContent = "data:text/csv;charset=utf-8," + data.map(e => e.join(",")).join("\n");
const encodedUri = encodeURI(csvContent);
const link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "data.csv");
document.body.appendChild(link); // Required for Firefox
link.click();
}
downloadExcel();
首先,需要在项目中引入 SheetJS 库:
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.17.5/xlsx.full.min.js"></script>
然后,使用以下代码生成并下载 Excel 文件:
function downloadExcelWithSheetJS() {
const data = [
['Name', 'Age', 'Email'],
['John Doe', 30, 'john@example.com'],
['Jane Smith', 25, 'jane@example.com']
];
const worksheet = XLSX.utils.aoa_to_sheet(data);
const workbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workbook, worksheet, "Sheet1");
const wbout = XLSX.write(workbook, {bookType:'xlsx', type:'binary'});
function s2ab(s) {
const buf = new ArrayBuffer(s.length);
const view = new Uint8Array(buf);
for (let i=0; i<s.length; i++) view[i] = s.charCodeAt(i) & 0xFF;
return buf;
}
saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), 'data.xlsx');
}
downloadExcelWithSheetJS();
问题:下载的文件无法打开或内容不正确。
原因:
解决方法:
encodeURIComponent
确保字符串编码正确。通过以上方法,可以有效地在 JavaScript 中实现 Excel 文件的下载功能。
领取专属 10元无门槛券
手把手带您无忧上云