2017-06-19 1 views
0

Je travaille actuellement à la génération de feuilles de calcul XLSX à l'aide de NodeJS. J'utilise le module xlsx-populate pour créer des fichiers XLSX à feuille unique sur un serveur Express. Je me demandais si quelqu'un connaissait un moyen de combiner plusieurs fichiers XLSX dans un fichier avec plusieurs feuilles en utilisant Node.Comment combiner deux fichiers XLSX en un en utilisant NodeJS

Merci!

Exemple:

const xlsx = require('xlsx-populate'); 

xlsx.fromFileAsync('template1.xlsx') 
    .then((workbook) => { 
    // populate the workbook with stuff 

    return workbook.toFileAsync('spreadsheet1.xlsx'); 
    }) 
    .then(() => xlsx.fromFileAsync('template2.xlsx')) 
    .then((workbook) => { 
    // populate the other workbook with stuff 

    return workbook.toFileAsync('spreadsheet2.xlsx'); 
    }); 

Cette chaîne Promise enregistre deux fichiers XLSX séparés (spreadsheet1.xlsx, spreadsheet2.xlsx), chacun étant construit à partir d'un fichier de modèle correspondant. xlsx-populate ne vous permet pas de créer plusieurs feuilles à partir de fichiers XLSX différents sur le même classeur, donc je me demande s'il est possible de combiner les deux classeurs en un avec plusieurs feuilles?

+0

Veuillez inclure tout code pertinent et des liens vers les références que vous avez utilisées lors de vos tentatives. – btl

+0

avez-vous essayé de créer deux flux de lecture de nœud et de les raccorder à un seul flux d'écriture? – cheesenthusiast

+0

@cheesenthusiast voir le montage, heureusement plus clair – DCtheTall

Répondre

0

Ajout d'une nouvelle feuille de calcul à un classeur

Cet exemple utilise XLSX.utils.aoa_to_sheet pour faire une feuille de calcul et la nouvelle feuille de calcul ajoute au classeur:

var new_ws_name = "SheetJS"; 

/* make worksheet */ 
var ws_data = [ 
    [ "S", "h", "e", "e", "t", "J", "S" ], 
    [ 1 , 2 , 3 , 4 , 5 ] 
]; 
var ws = XLSX.utils.aoa_to_sheet(ws_data); 

/* Add the sheet name to the list */ 
wb.SheetNames.push(ws_name); 

/* Load the worksheet object */ 
wb.Sheets[ws_name] = ws; 

de: https://www.npmjs.com/package/xlsx#streaming-read