josn返回excel给前端
时间: 2023-07-03 14:12:51 浏览: 80
要将JSON数据返回给前端的Excel文件,你可以使用JavaScript中的第三方库,比如SheetJS,它提供了将JSON数据转换为Excel文件的工具。
以下是一个使用SheetJS的示例代码:
```javascript
// 导入SheetJS
import XLSX from 'xlsx';
// 假设你的JSON数据如下:
const jsonData = [
{ name: 'John', age: 25, city: 'New York' },
{ name: 'Jane', age: 30, city: 'Los Angeles' },
{ name: 'Bob', age: 35, city: 'Chicago' }
];
// 将JSON数据转换为工作簿对象
const ws = XLSX.utils.json_to_sheet(jsonData);
// 将工作簿对象添加到工作簿中
const wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
// 将工作簿对象转换为二进制字符串
const binaryString = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });
// 将二进制字符串转换为Blob对象
const blob = new Blob([s2ab(binaryString)], { type: 'application/octet-stream' });
// 下载Excel文件
const a = document.createElement('a');
a.href = URL.createObjectURL(blob);
a.download = 'data.xlsx';
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
// 将字符串转换为Uint8Array
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 view;
}
```
在这个例子中,我们首先将JSON数据转换为工作簿对象,然后将工作簿对象添加到工作簿中。接着,我们将工作簿对象转换为二进制字符串,将字符串转换为Uint8Array,并将其作为Blob对象下载到本地计算机上。
阅读全文