は私は非常に満足して作られたソリューションです。私の友人の命題のおかげで、私は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>
...それは完璧に動作します。あなたが言うように:「魅力のように」)
私はこれが誰かを助けることを望みます。
ご返信ありがとうございます。サーバーやクライアントにファイルを保存せずにストリームを作成しただけです。私は下の私の解決策を示すが、あなたの答えを正しいものとしてマークする。 –