2017-06-19 100 views
0

我目前正在使用NodeJS生成XLSX电子表格。我正在使用模块xlsx-populate在Express服务器上创建单页XLSX文件。如何将2个XLSX文件合并为一个使用NodeJS

我想知道是否有人知道使用Node将多个XLSX文件合并到一个文件中的方法。

谢谢!

实施例:

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'); 
    }); 

这无极链节省两个单独XLSX文件(spreadsheet1.xlsx,spreadsheet2.xlsx),每个从对应的模板文件构建的。 xlsx-populate不允许您从同一工作簿上的不同XLSX文件创建多个工作表,因此我想知道是否可以将两个工作簿合并到一个工作表中?

+0

请包括任何相关的代码和链接到你在尝试中使用的引用。 – btl

+0

您是否尝试过创建两个节点读取流并将它们管道化为单个写入流? – cheesenthusiast

+0

@cheesenthusiast看到编辑,希望更清楚 – DCtheTall

回答

0

添加一个新的工作表到工作簿

此示例使用XLSX.utils.aoa_to_sheet做一个工作表,并追加新的工作表到工作簿:

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; 

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

相关问题