js导出excel文件
时间: 2023-09-12 19:03:59 浏览: 94
在 JavaScript 中,你可以使用以下方法将数据导出为 Excel 文件:
1. 使用 HTML5 的 Blob 对象和 URL.createObjectURL 方法:
```javascript
function exportToExcel(data, filename) {
const csvData = convertToCSV(data);
const blob = new Blob([csvData], { type: 'text/csv;charset=utf-8;' });
const url = URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', filename + '.csv');
link.style.visibility = 'hidden';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
function convertToCSV(data) {
const separator = ',';
const keys = Object.keys(data[0]);
const header = keys.join(separator);
const rows = data.map(row => {
return keys.map(key => {
return row[key];
}).join(separator);
});
return header + '\n' + rows.join('\n');
}
// 使用示例
const data = [
{ name: 'John', age: 30, city: 'New York' },
{ name: 'Jane', age: 25, city: 'San Francisco' },
{ name: 'Bob', age: 35, city: 'Chicago' }
];
exportToExcel(data, 'users');
```
2. 使用第三方库,如 `xlsx`:
```javascript
// 安装 xlsx 库
// npm install xlsx
const XLSX = require('xlsx');
function exportToExcel(data, filename) {
const wb = XLSX.utils.book_new();
const ws = XLSX.utils.json_to_sheet(data);
XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
XLSX.writeFile(wb, filename + '.xlsx');
}
// 使用示例
const data = [
{ name: 'John', age: 30, city: 'New York' },
{ name: 'Jane', age: 25, city: 'San Francisco' },
{ name: 'Bob', age: 35, city: 'Chicago' }
];
exportToExcel(data, 'users');
```
这些方法可以将数据导出为 CSV 或 XLSX 格式的 Excel 文件。你可以根据自己的需求选择合适的方法。
阅读全文