将.xlsx文件上传到express / node和mongoDB

时间:2015-07-23 03:00:25

标签: node.js excel mongodb express

我试图创建一个Web应用程序,其中管理员可以将每周工作计划上传到应用程序,然后让应用程序将数据解析为html格式。

我向你们提出的问题是如何让应用程序在上传时将excel文件转换为JSON。我是新手,因此我不确定在将文件转换为JSON时如何同时将文件上传到Mongo。

编辑 - 在我的app.js中:

  xlsxj = require("xlsx-to-json");
  xlsxj({
    input: "sample.xlsx", 
    output: "output.json"
  }, function(err, result) {
    if(err) {
      console.error(err);
    }else {
      console.log(result);
    }
  });

app.post('/upload' function(req, res) {
  ??? What to put here ???
});

我的输入,用户选择要上传的文件:

  .div(style={position: 'absolute', right: '50px', top: '75px'})
    unless user.email == "cca@gmail.com"
      p Upload New Schedule
      #uploadNew
        form(action="...", method="post", enctype="multipart/form-data")
          input(type="file", name="displayImage")

我想知道如何从那里转到将输入转换为JSON并存储在数据库中

3 个答案:

答案 0 :(得分:1)

我建议使用js-xlsx来解析Node.js上的.xlsx文件。这是一个经过高度测试的库,可将数据解析为JSON结构,您可以迭代以提取数据。它不会解析图表或处理宏,但您可能不需要。

您可能会也可能不会选择将数据存储在MongoDB中。 Mongo很好,原因很多,但你必须确保没有属性有嵌入式$.,因为这些是保留的并且会产生错误。您可以考虑使用aws-sdk

在S3上存储XLSX文件或字符串化JSON文件的另一种方法

答案 1 :(得分:0)

有几个npm包可以将xlsx数据转换为json格式。 您可以在npm website上搜索它们。

使用this包。

将xlsx文件上载到数据库后。将其转换为xlsx并将其保存到数据库。

答案 2 :(得分:0)

=RowNumber(Nothing)/Count(Fields!AdmitCardNo.Value)