D'accord, j'utilise le module FileUploader
pour transférer mon fichier d'angle à mon REST API
:
var uploader = $scope.uploader = new FileUploader({
url: api.getUrl('uploadCompetence',null)
});
Ceci est envoyé à la fonction POST
suivante:
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);
});
})
Mon objectif est maintenant de lire le fichier Excel
, puis d’ajouter chaque ligne à ma base de données.
Cependant, je ne sais pas trop comment lire le fichier à partir de Node.js
. J'ai débogué mon serveur et je ne pouvais pas trouver le fichier où que ce soit, mais l'API est appelée depuis mon application Angular
.
Quelqu'un peut-il me pousser dans la bonne direction? :)
Quelques bibliothèques différentes analysent des fichiers Excel (.xlsx). Je vais énumérer deux projets que je trouve intéressants et qui méritent d’être approfondis.
Analyseur et constructeur Excel. C'est une sorte de wrapper pour un projet populaire JS-XLSX, qui est une implémentation javascript pure issue des spécifications Office Open XML.
Exemple d'analyse de fichier
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
Lisez, manipulez et écrivez des données et des styles de feuille de calcul sous XLSX et JSON. C'est un projet actif. Au moment de la rédaction du présent rapport, le dernier engagement datait d'il y a 9 heures. Je n'ai pas testé cela moi-même, mais l'API semble vaste avec beaucoup de possibilités.
Exemple de code:
// 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());
Vous pouvez également utiliser ce module de noeud appelé js-xlsx
1) Installer le module npm install xlsx
2) Module d'importation + extrait de code
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);
installez exceljs et utilisez le code suivant,
var Excel = require('exceljs');
var wb = new Excel.Workbook();
var path = require('path');
var filePath = path.resolve(__dirname,'sample.xlsx');
wb.xlsx.readFile(filePath).then(function(){
var sh = wb.getWorksheet("Sheet1");
sh.getRow(1).getCell(2).value = 32;
wb.xlsx.writeFile("sample2.xlsx");
console.log("Row-3 | Cell-2 - "+sh.getRow(3).getCell(2).value);
console.log(sh.rowCount);
//Get all the rows data [1st and 2nd column]
for (i = 1; i <= sh.rowCount; i++) {
console.log(sh.getRow(i).getCell(1).value);
console.log(sh.getRow(i).getCell(2).value);
}
});