У меня проблема при попытке создать несколько файлов Excel на сервере (node.js) и отправить эти файлы клиенту.Я также пытался отправить несколько запросов со стороны клиента, но сервер отправил мне только 1 файл / раз для загрузки.Пожалуйста, помогите. Большое спасибо!
ОТ СТОРОНЫ КЛИЕНТА Я перебираю список запросов на загрузку и отправляю каждый запрос на сервер
listReques.forEach(data => {
var sendString = JSON.stringify(data);
//sent request
requestSent(sendString)
});
function requestSent (requests){
var request = new XMLHttpRequest();
request.open('POST', '/download', true);
request.setRequestHeader('Content-type', 'application/json');
request.responseType = 'blob';
request.send(requests);
request.onload = function(e) {
//do some thing...
};
}
ОТ СТОРОНЫ СЕРВЕРА Я записываю данныев существующую книгу Excel и попробуйте отправить эту книгу клиенту
function createBill(dataWriteBill, nameBill, builNumber, type, res){
var workbook = new Excel.Workbook();
workbook.xlsx.readFile('./data/excel/template.xlsx')
.then(function() {
let listHeader = Object.keys(dataWriteBill[0]);
var worksheet = workbook.getWorksheet('Data');
let listColumns = [];
listHeader.map(d=>{
let obj = {};
obj.header = d;
obj.key = d;
obj.width = 20;
listColumns.push(obj)
})
worksheet.columns = listColumns
var row = worksheet.getRow(1);
dataWriteBill.map(d=> worksheet.addRow(d))
worksheet.getColumn(20).values = [builNumber]
worksheet.getColumn(21).values = [type]
row.commit();
res.setHeader('Content-Type', 'application/vnd.openxmlformats-
officedocument.spreadsheetml.sheet');
res.setHeader('Content-Disposition', `${nameBill}`);
return workbook.xlsx.write(res).then(()=>{
res.status(200).end();
});
})
}