javascript - Exceljs+nodejs 提供 excel 流
问题描述
假设我想使用 exceljs 为 web 客户端提供 excel。另外,假设我正在使用流式传输(由于文件可能很大并且不想将它们保存在内存中)。
是否可以找出 Content-Length 标头应该是什么?因为没有这个,我看不到 chrome 的下载进度微调器。
示例代码:
app.get('/some/route', function(req, res) {
res.writeHead(200, {
'Content-Disposition': 'attachment; filename="file.xlsx"',
'Content-Type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
"Content-Length" : inf //this is what I want!!
})
var workbook = new Excel.stream.xlsx.WorkbookWriter({ stream: res })
var worksheet = workbook.addWorksheet('some-worksheet')
worksheet.addRow(['foo', 'bar']).commit()
worksheet.commit()
workbook.commit()
}
解决方案
尝试这个。
res.set({
'Content-Disposition': 'attachment; filename="ireshansexcel.xlsx"',
'Content-Type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
});
const workbook = new Excel.Workbook();
const worksheet = workbook.addWorksheet('Survey');
//your excel worksheet content
//commit everything
let fileBuffer = await workbook.xlsx.writeBuffer();
res.send(fileBuffer);
我一直writeBuffer()
在 exceljs 中使用方法,似乎它与进度微调器一起工作得很好。但我处理过小文件。但是您可以测试这种方法。我使用了这种方法,因为上面提到的方法在 azure 函数中对我不起作用。
推荐阅读
- ruby-on-rails - 如何将参数 Active Model Serializer 传递给另一个 Serializer?
- python - 在具有匹配字符串值及其计数的列表中查找模糊匹配字符串
- python-3.x - 将变量分配给函数返回?
- php - 没有为帐户“ProjectBundle\Base\Entity\User”配置编码器
- php - CURLOPT_HEADER - 在 laravel 6 中假设为 'CURLOPT_HEADER'
- xml - 用点填充 4 个跨行的单元格。XSL-FO 问题
- angular - 将索引从 ng-container 传递到 ng-template
- python - 如何在python中打印重复单词的不同字符?
- spring-boot - 带有微服务的 JHipster 弹簧控制器
- excel - 有没有办法在现代浏览器(如 Google Chrome)中导入/使用宏工作表(Excel 中的 VBA)