私はexceljsを使用して(そのストリーミング機能を使用して)Excelファイルを生成しています。ファイルをサーバーに保存してから読み込んで返す代わりに、hapijsのレスポンスにexceljsストリームを直接ストリームしたいと思います。hapijsで返信するためにexceljsストリームをパイプする方法
function(request, reply) {
const options = {
stream: reply, // I need to somehow declare the reply stream here
useStyles: false,
useSharedStrings: true
};
const workbook = new Excel.stream.xlsx.WorkbookWriter(options);
workbook.addWorksheet('Test');
const worksheet = workbook.getWorksheet('Test');
worksheet.columns = [{
header: 'product', key: 'product'
}];
worksheet.addRow({product: 'MyProduct'}).commit();
worksheet.commit();
workbook.commit();
これは可能ですか? expressjsで行うようにExceljsストリームのオプションに直接返信することはできません。何かご意見は?
返信は、ストリームを返すことができますが、私はあなたがHAPIの返信インタフェースに渡すことができる独自のストリーミングインターフェイスでexceljsロジックを包むだろう、私は**モジュールを使用し、[J](https://www.npmjs.com/package/j)**これを達成するために。 [this](https://github.com/circabs/xl-json)のモジュールを見て、ストリームをラップする方法を示してください。私の例では、excelからjsonに変換しています –