У меня есть файл Excel с шаблоном, и мне нужно записать данные в файл, используя читаемый поток, а затем передать обратно полученный файл в ответ сервера для загрузки.
Это то, что я получил до сих пор, используя exceljs. Но это не «настоящая» потоковая передача, потому что книга была сохранена в памяти перед отправкой в ответ.
const path = require('path')
const Excel = require('exceljs')
const dao = require('./dao')
const stream = dao.getData().stream()
const workbook = new Excel.Workbook()
workbook.xlsx.readFile(path.join(__dirname, 'Template.xlsx'))
.then(() => {
const detailSheet = workbook.getWorksheet('Detail')
detailSheet.columns = colName.header.detail
stream.on('data', (d) => {
detailSheet.addRow(d).commit()
})
stream.on('end', () => {
workbook.xlsx.write(res)
})
})