forked from sheetjs/sheetjs
23 lines
723 B
JavaScript
23 lines
723 B
JavaScript
|
/* xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */
|
||
|
/* eslint-env node */
|
||
|
// cat file.xlsx | curl --header 'content-type: application/octet-stream' --data-binary @- "http://localhost:3000/"
|
||
|
const XLSX = require('xlsx');
|
||
|
|
||
|
const process_RS = (stream, cb) => {
|
||
|
var buffers = [];
|
||
|
stream.on('data', function(data) { buffers.push(data); });
|
||
|
stream.on('end', function() {
|
||
|
var buffer = Buffer.concat(buffers);
|
||
|
var workbook = XLSX.read(buffer, {type:"buffer"});
|
||
|
cb(workbook);
|
||
|
});
|
||
|
};
|
||
|
|
||
|
module.exports = (hook) => {
|
||
|
process_RS(hook.req, (wb) => {
|
||
|
hook.res.writeHead(200, { 'Content-Type': 'text/csv' });
|
||
|
const stream = XLSX.stream.to_csv(wb.Sheets[wb.SheetNames[0]]);
|
||
|
stream.pipe(hook.res);
|
||
|
});
|
||
|
};
|