Vous devez vérifier ExcelJS
Fonctionne avec les formats CSV et XLSX.
Idéal pour lire/écrire des flux XLSX. Je l'ai utilisé pour transmettre un téléchargement XLSX à un objet de réponse Express, en gros comme ceci :
app.get('/some/route', function(req, res) {
res.writeHead(200, {
'Content-Disposition': 'attachment; filename="file.xlsx"',
'Transfer-Encoding': 'chunked',
'Content-Type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
})
var workbook = new Excel.stream.xlsx.WorkbookWriter({ stream: res })
var worksheet = workbook.addWorksheet('some-worksheet')
worksheet.addRow(['foo', 'bar']).commit()
worksheet.commit()
workbook.commit()
}
Fonctionne très bien pour les fichiers volumineux, bien mieux que excel4node (utilisation énorme de la mémoire et crash du processus Node "out of memory" après presque 5 minutes pour un fichier contenant 4 millions de cellules dans 20 feuilles) car ses capacités de streaming sont beaucoup plus limitées (ne permet pas de "commit()" les données pour récupérer les morceaux dès qu'ils peuvent être générés)
Voir aussi cette réponse SO .