在Node.js中写入XLS文件和响应流可以通过使用第三方库exceljs
来实现。以下是一个完善且全面的答案:
exceljs
库来创建、写入和操作XLS文件。下面是一个示例代码,演示如何在Node.js中使用exceljs
库来写入XLS文件和响应流:
const express = require('express');
const ExcelJS = require('exceljs');
const app = express();
app.get('/download', (req, res) => {
// 创建一个新的工作簿
const workbook = new ExcelJS.Workbook();
const worksheet = workbook.addWorksheet('Sheet 1');
// 添加数据到工作表
worksheet.addRow(['Name', 'Age']);
worksheet.addRow(['John', 25]);
worksheet.addRow(['Jane', 30]);
// 设置响应头,告诉浏览器下载文件
res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
res.setHeader('Content-Disposition', 'attachment; filename="data.xlsx"');
// 将工作簿写入响应流
workbook.xlsx.write(res)
.then(() => {
res.end();
})
.catch((error) => {
console.log(error);
res.status(500).send('Internal Server Error');
});
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
在上述示例代码中,我们使用express
框架创建了一个简单的HTTP服务器,并定义了一个路由/download
来处理下载请求。在路由处理函数中,我们创建了一个新的工作簿,并向其中添加了一些数据。然后,我们设置响应头,告诉浏览器下载文件,并将工作簿写入响应流中,最后结束响应。
请注意,为了运行上述代码,需要先安装express
和exceljs
库:
npm install express exceljs
希望以上内容能够满足您的需求,如果还有其他问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云