1

I am using the package below to try to convert uploaded excel files (.xlsx) to JSON files on my Express web application:

https://www.npmjs.com/package/xlsx-to-json

So here is my form for the user to upload:

        form(id = "form1", action="/upload", method="post", enctype="multipart/form-data")
          input(type="file", id="control", name="XLupload")
          br
          input(type="submit" value="Upload" name="Submit")

and here is my routing for the upload back in my main express (app.js) file:

var multer = require('multer');
var upload = multer({dest: './uploads'});
var excel_upload = upload.single('XLupload');

app.post('/upload', excel_upload, function(req, res) {

var fileObject = req.file;
var filePath = fileObject.path;
/*** This is what the file Object looks like when uploaded:
{ fieldname: 'XLupload',
  originalname: 'testing.xlsx',
  encoding: '7bit',
  mimetype: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',

  destination: './uploads',
  filename: 'c1d55ea7d1f6fccc7e3d3d2764db8881',
  path: 'uploads\\c1d55ea7d1f6fccc7e3d3d2764db8881',
  size: 8013 }
***/

xlsxj({
    input: String(filePath),
    output: "output.json"
    }, function(err, result) {
        if (err) {
            console.log(err);
        } else {
            console.log(result);
            }
        });
});

anyways, to put it shortly, the uploads seem to work fine, that is, they are uploaded to the /uploads folder in the directory. However, the JSON file that I get back from the xlsxj converter is empty and I'm not sure why. I made a small test xlsx file with some words in random cells and it still game me back an empty [] in output.json. Anybody can let me know what I am doing wrong?

John Doe
  • 205
  • 6
  • 17

1 Answers1

1

You can try to use this library XLSX (https://github.com/SheetJS/js-xlsx) and add this code after get workssheet

var roa = XLSX.utils.sheet_to_row_object_array(worksheet);
Vitalii Andrusishyn
  • 3,984
  • 1
  • 25
  • 31