原生js下载excel
时间: 2023-11-17 10:09:04 浏览: 87
js 下载excel
以下是使用原生JS下载Excel文件的示例代码:
```javascript
function downloadExcel() {
// 创建一个空的工作簿
var workbook = XLSX.utils.book_new();
// 添加一个工作表
var worksheet = XLSX.utils.json_to_sheet([
{ Name: "John Smith", Age: 35, Gender: "M" },
{ Name: "Jane Doe", Age: 28, Gender: "F" },
{ Name: "Jim Brown", Age: 45, Gender: "M" }
]);
// 将工作表添加到工作簿中
XLSX.utils.book_append_sheet(workbook, worksheet, "Sheet1");
// 将工作簿转换为二进制数据流
var binaryData = XLSX.write(workbook, { bookType: "xlsx", type: "binary" });
// 创建一个Blob对象
var blob = new Blob([s2ab(binaryData)], { type: "application/octet-stream" });
// 创建一个a标签
var link = document.createElement("a");
// 设置a标签的href属性为Blob对象的URL
link.href = URL.createObjectURL(blob);
// 设置a标签的download属性为文件名
link.download = "example.xlsx";
// 模拟点击a标签进行下载
link.click();
}
// 将字符串转换为ArrayBuffer对象
function s2ab(s) {
var buf = new ArrayBuffer(s.length);
var view = new Uint8Array(buf);
for (var i = 0; i < s.length; i++) {
view[i] = s.charCodeAt(i) & 0xff;
}
return buf;
}
```
该代码使用了js-xlsx库来处理Excel文件,通过创建一个空的工作簿,添加一个工作表,将工作表添加到工作簿中,然后将工作簿转换为二进制数据流,最后创建一个Blob对象并模拟点击a标签进行下载。
阅读全文