私はexceljs
を使用してExcelファイルを生成する帆アプリケーションを持っています。そのdocumenatationを見て:Sailsjsはデータストリームをダウンロードします
https://www.npmjs.com/package/exceljs#writing-xlsx
彼らが、ストリームへの書き込みを許可表示されます。
// write to a stream
workbook.xlsx.write(stream)
.then(function() {
// done
});
ユーザーが応答を期待しているときにこれを行うにはどうすればよいですか?
私は以下の読み:
http://sailsjs.org/documentation/concepts/custom-responses/adding-a-custom-response
http://sailsjs.org/documentation/concepts/custom-responses/default-responses
を私はまた、ファイルを保存した後res.attachment()
を試してみましたが、成功しませんでした。私は行方不明のものがありますか?
EDIT
以下の答えは、ほとんどの権利です。私は以下のことをして、それは働いた。以前のソリューションでは、ファイルが破損することがありました。
res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
res.setHeader("Content-Disposition", "attachment; filename=" + "Report.xlsx");
return workbook.xlsx.write(res)
.then(function() {
res.end();
});
これは私のEC2インスタンスとローカルで動作しました。
動作していないようです。コンテンツはなくなりました。 – KVISH
@KVISHは今すぐ動作するはずです。私はストリームの使用によって混乱しました。 xlsx.writeが応答に書き込むことができるので、ストリームを直接使用する必要はありません。 –
奇妙なことは私のMacでは動作しますが、EC2インスタンスでは動作しません。奇妙な。 – KVISH