前端代码实现100w条数据导出excel,分批导出,插入excel,完成实现代码
时间: 2024-10-16 14:16:13 浏览: 23
前端实现大量数据导出Excel并分批处理,通常会利用JavaScript库如`xlsx`、`js-xlsx`或`file-saver`以及一些服务器支持的CSV导出功能。下面是一个简单的示例,假设我们已经安装了`xlsx`库:
```javascript
// 引入必要的库
const XLSX = require('xlsx');
let data = []; // 假设这是你的100万条数据
// 分批导出设置,这里假设每批次50000条数据
const batchSize = 50000;
let batchIndex = 0;
function exportBatch() {
if (batchIndex + batchSize > data.length) {
// 如果剩余数据不足一整批,则导出全部剩余
const lastBatchData = data.slice(batchIndex);
const wsName = 'Sheet1';
const wb = { SheetNames: [wsName], Sheets: {} };
wb.Sheets[wsName] = XLSX.utils.json_to_sheet(lastBatchData);
// 使用file-saver下载
XLSX.writeFile(wb, 'output_' + batchIndex + '.xlsx');
console.log(`导出第${batchIndex + 1}批完成`);
} else {
// 否则只导出当前批次
const wsName = 'Sheet1';
const start = batchIndex;
const end = batchIndex + batchSize;
const slicedData = data.slice(start, end);
const wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, XLSX.utils.json_to_sheet(slicedData), wsName);
// 文件名包含开始和结束索引
const fileName = `output_${start}-${end}.xlsx`;
XLSX.writeFile(wb, fileName);
console.log(`导出第${batchIndex + 1}批 - ${end}条到${fileName}`);
// 更新批号
batchIndex += batchSize;
}
}
exportBatch(); // 开始导出第一批次
```
这个代码首先检查是否有足够的数据需要导出,然后创建一个新的工作簿,并将数据转换为表格形式。然后,它将文件保存到本地磁盘,格式化为.xlsx。
阅读全文