我正在尝试创建一个excel文件并发送到客户端。客户端应该通过 AJAX 请求下载该文件,因为我需要过滤器参数。
我正在使用excel4node包创建一个excel文件。
我写了下面的代码,它现在的工作,但我怀疑如果我将有大于缓冲区的数据。这是正确的方式使用缓冲区?(请检查行与writeToBuffer方法)
const xl = require('excel4node');
const excelCreator = function (data) {...}
app.post('/api/excel', jsonParser, (req, res) => {
let reqObj = {
method: 'post',
url: apiUrl + '/MemberService';,
headers: {
'Content-Type': 'application/json'
},
data: req.body
};
axios(reqObj)
.then(response => {
res.body = responseHandler(response); // a helper function to set res object
let data = res.body.Data;
res.setHeader('Content-Disposition', 'attachment; filename=' + 'excel.xlsx');
res.type('application/octet-stream');
res.body.Data = null;
excelCreator(data).writeToBuffer().then(function (buffer) {
res.body.Data = buffer;
res.send(res.body);
});
})
.catch(...);
});
2条答案
按热度按时间hof1towb1#
首次安装
SheetJS js-xlsx
然后,您可以使用Express发送此响应:
请随时查看文档https://www.npmjs.com/package/xlsx
oalqel3c2#
所用 Package :
希望能成功。