无法让xlsx到JSON转换器在Node / Express中正常工作

时间:2015-07-24 04:56:34

标签: json node.js express xlsx multer

我正在使用下面的程序包尝试将上传的Excel文件(.xlsx)转换为Express Web应用程序上的JSON文件:

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

所以这是我的表单供用户上传:

        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")

这是我在主快递(app.js)文件中上传的路由:

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);
            }
        });
});

无论如何,简而言之,上传似乎工作正常,也就是说,它们被上传到目录中的/ uploads文件夹。但是,我从xlsxj转换器返回的JSON文件是空的,我不知道为什么。我用随机单元格中的一些单词做了一个小的测试xlsx文件,它仍然让我回到空白 [] 在output.json中。任何人都可以让我知道我做错了什么?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用此库XLSX(https://github.com/SheetJS/js-xlsx)并在获取工作表后添加此代码

var roa = XLSX.utils.sheet_to_row_object_array(worksheet);