使用node.js读取Excel文件

好吧,我使用FileUploader模块将我的文件从angular度上传到我的REST API

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

这被发送到以下POSTfunction:

  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读取文件我已经debugging我的服务器,并不能find该文件的任何地方,但该API是从我的Angular应用程序调用

任何人都可以把我推向正确的方向吗? 🙂

有几个不同的库分析Excel文件(.xlsx)。 我会列出两个我觉得很有意思,值得研究的项目。

节点XLSX

Excelparsing器和构build器。 这是一个受欢迎的项目JS-XLSX的包装,它是从Office Open XML规范中纯粹的JavaScript实现。

node-xlsx项目页面

parsing文件的例子

 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个小时之前。 我自己没有testing过这个,但是这个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()); 

您也可以使用这个名为js-xlsx的节点模块

1)安装模块
npm install xlsx

2)导入模块+代码片段

 var XLSX = require('xlsx') var workbook = XLSX.readFile('Master.xlsx'); var sheet_name_list = workbook.SheetNames; var xlData = XLSX.utils.sheet_to_json(workbook.Sheets[sheet_name_list[0]]); console.log(xlData); 

安装'spread_sheet'节点模块,它将从本地电子表格添加和获取行