在nodejs中将excel文件转换为json

新手上路,请多包涵

我正在尝试使用此 api:convert-json node api 将 excel 文件转换为 json。

我可以在我的本地计算机上执行此操作,但不能在我的服务器上执行。只有 csv-to-json 在本地和服务器上有效。这是我的代码: https ://gist.github.com/debasreedash/33efd4473ba8b344a5ac

在第一个 console.log 之后立即尝试解析 excel 文件时服务器崩溃。这是它的样子:http: //imgur.com/lzUy8sc

我认为这是服务器上没有 excel 驱动程序的问题,但在下载并安装后它也不起作用。有人遇到过这个问题吗?如果您需要更多信息,请告诉我。

原文由 user1553174 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 259
1 个回答

使用此方法可以轻松理解和解析:

 npm install --save excel'

var xls = require('excel');

xls('Sheet.xlsx', function(err, data) {
  if(err) throw err;
    // data is an array of arrays
});

正如它所说,它返回的数据是一个数组数组。我们希望它是 JSON,这样我们就可以用它做任何我们想做的事。

这是一个将数组数组转换为 JSON 的函数:

 function convertToJSON(array) {
  var first = array[0].join()
  var headers = first.split(',');

  var jsonData = [];
  for ( var i = 1, length = array.length; i < length; i++ )
  {

    var myRow = array[i].join();
    var row = myRow.split(',');

    var data = {};
    for ( var x = 0; x < row.length; x++ )
    {
      data[headers[x]] = row[x];
    }
    jsonData.push(data);

  }
  return jsonData;
};

然后:

 xlsx('tasks.xlsx', function(err,data) {
    if(err) throw err;
    //console.log(jsonDataArray(data));
    console.log(JSON.stringify(convertToJSON(data)));
    //console.log(data);
});

原文由 Vishnu Shekhawat 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题