Skip to content

Instantly share code, notes, and snippets.

@eperedo
Created January 27, 2016 21:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eperedo/9d7513227f9726e75370 to your computer and use it in GitHub Desktop.
Save eperedo/9d7513227f9726e75370 to your computer and use it in GitHub Desktop.
Read xls, xlsx and csv files and return json object (inside a hapijs handler)
handler: function (request, reply) {
const path = require('path');
const response = reply('success').hold();
const fileExtension = path.extname(request.payload.file.filename);
if (fileExtension === '.csv') {
const csv = require('csv-to-json');
csv.parse( { filename: request.payload.file.path }, (err, json) => {
response.source = json;
return response.send();
});
}
else if (fileExtension === '.xls' || fileExtension === '.xlsx') {
const xls = require('xlsx');
const workbook = xls.readFile(request.payload.file.path);
response.source = xls.utils.sheet_to_json(workbook.Sheets[Object.keys(workbook.Sheets)[0]]);
return response.send();
}
else {
response.statusCode = 500;
return response.send();
}
}
@eperedo
Copy link
Author

eperedo commented Jan 27, 2016

Packages:

npm install csv-to-json
npm install xlsx

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment