一尘不染

使用node.js读取Excel文件

angularjs

好的,所以我正在使用该FileUploader模块将我的文件从angular上传到my REST API

var uploader = $scope.uploader = new FileUploader({
    url: api.getUrl('uploadCompetence',null)
});

这被发送到以下POST功能:

        router.route('/api/uploadCompetence')
        .post(function (req, res) {

        // This is where i want to read the file

            var competence = Competence.build(req.body.location);
            competence.add(function (success) {
                    res.json({message: 'quote created!'});
                },
                function (err) {
                    res.status(err).send(err);
                });
        })

现在,我的目标是读取excel文件,然后将每一行添加到数据库中。

但是我不太确定我如何从Node.js我的服务器中读取文件并调试了服务器,找不到文件,但是正在从我的Angular应用程序中调用api。

谁能向正确的方向推动我?:)


阅读 303

收藏
2020-07-04

共1个答案

一尘不染

有几种不同的库可以解析Excel文件(.xlsx)。我将列出两个我觉得有趣并且值得研究的项目。

节点xlsx

Excel解析器和生成器。它是流行项目 JS-XLSX
的包装,它是Office Open XML规范中的纯JavaScript实现。

node-xlsx项目页面

解析文件示例

var xlsx = require('node-xlsx');

var obj = xlsx.parse(__dirname + '/myFile.xlsx'); // parses a file

var obj = xlsx.parse(fs.readFileSync(__dirname + '/myFile.xlsx')); // parses a buffer

ExcelJS

读取,操作并将电子表格数据和样式写入XLSX和JSON。这是一个活跃的项目。在撰写本文时,最新提交是在9个小时前。我自己还没有测试过,但是api看起来很广泛,具有很多可能性。

exceljs项目页面

代码示例:

// read from a file
var workbook = new Excel.Workbook();
workbook.xlsx.readFile(filename)
    .then(function() {
        // use workbook
    });

// pipe from stream
var workbook = new Excel.Workbook();
stream.pipe(workbook.xlsx.createInputStream());
2020-07-04