2016-11-09 973 views
0

我只是想弄清楚如何将一行添加到xlsx文件。例如,使用列1,2,3,4,5将第一个空行附加array = [1 2 3 4 5]。理想情况下,我会从空的.xlsx文件开始,并重复运行该程序,该程序每次运行时都会在文件中追加一个新行。Node.js向xlsx文件追加一行

我试图使用exceljs,但是当我试图打开它们时,我尝试对文件执行的任何测试写入都说已损坏。

编辑代码(仍然没有工作):

var Excel = require('exceljs'); 
var workbook = new Excel.Workbook(); 
var sheet = workbook.addWorksheet('rssi');                                                 
file = 'testfile.xlsx'   
var array = [1,2,3,4,5] 
sheet.addRow(array) 
workbook.xlsx.writeFile(file) 
.then(function() { 
    console.log('Array added and file saved.') 
}); 

输出为0字节不能由Microsoft Excel中打开。说:“文件格式或文件扩展名无效,请确认文件没有被损坏,并且文件扩展名与文件格式相匹配。”

回答

0

基本上,您试图在文件写入后调用的方法中添加行。试试下面这个例子:

var workbook = new Excel.Workbook();                                                  
file = 'testfile.xlsx' 
var array = [1,2,3,4,5] 
var sheet = workbook.addWorksheet('rssi'); 
sheet.addRow(array) 
workbook.xlsx.writeFile(file) 
     .then(function() { 
      console.log('Array added and then file saved.') 
     }); 
+0

这似乎HMM是不工作只添加一行。现在该文件有一个空白名称,仍然说“excel无法打开此文件” – Austin

+0

@Jake我正在使用在线谷歌电子表格打开。完美的作品。你使用哪个excel版本? – aring

+0

使用Excel for Mac版本15.26 – Austin

0

添加行到电子表格: -

我也坚持相同的功能的问题,所以我用“spread_sheet”模块。

它为我

+0

请解释如何使用'spread_sheet'模块,因为这个答案可能会被未来的访问者查看。 – SteveFest

+0

//但它一次只添加一行 var spread_sheet = require('spread_sheet'); var row =“1,2,Jack,Pirate”; var filePath ='/home/Pranjal/Desktop/test.xlsx'; var sheetName =“Sheet1”; spread_sheet.addRow(行,文件路径,SHEETNAME,功能(ERR,结果){ 的console.log(ERR,结果) }) –

+0

请不要把它放在意见,而不是编辑你的答案 – SteveFest

0

但它同时

var spread_sheet = require('spread_sheet'); 

var row = "1,2,Jack,Pirate"; 
var filePath = '/home/Pranjal/Desktop/test.xlsx'; 
var sheetName = "Sheet1"; 

spread_sheet.addRow(row,filePath,sheetName,function(err,result){ 
console.log(err,result) 
}) 
+0

spread_sheet除.xlsx扩展名之外,模块也适用于.odc扩展 –