다음은 나를 매우 기쁘게하는 해결책입니다. 내 친구의 제안 덕분에, 나는 server-side route
내부 .xlsx
생성 코드를 삽입 :
Excel = require('exceljs');
fs = require('fs');
Picker.route('/export/:_cheques', function(params, req, res, next) {
let data = Cheques.find(query).map((it) => {
return {
cheque_number: it.cheque_number, // & other data
}
});
let workbook = new Excel.Workbook();
let sheet = workbook.addWorksheet('Cheques', { properties: { tabColor: { argb: 'FFC0000' } } });
sheet.columns = [
{ header: 'Номер чека', key: 'cheque_number', width: 30 }, // & other columns
];
data.map(function(it) {
sheet.addRow({
cheque_number: it.cheque_number, // & other data
})
});
res.writeHead(200, {
'Content-Type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'Content-Disposition': headerFilename,
});
workbook.xlsx.write(res)
)};
그럼 난 그냥 내 html
내부에 링크를 추가 :
<a href='/export/all' rel='external' download> Export my file </a>
... 및 그것은 완벽하게 작동합니다. "부끄러움처럼"당신이 말하는 것처럼 :)
나는 이것이 누군가에게 도움이되기를 바랍니다.
답장을 보내 주셔서 감사합니다. 방금 서버 또는 클라이언트에 파일을 저장하지 않고 스트림을 만들었습니다. 나는 아래에 나의 해결책을 보여줄 것이지만, 당신의 대답을 올바른 것으로 표시 할 것이다. –